Использование JQuery для захвата изменений в Telerik MVC ComboBoxFor - PullRequest
1 голос
/ 17 марта 2011

Я использую следующий код для захвата текста изменений во входных данных HTML:

$(document).ready(function() {
    $(':input', document.myForm).bind("change", function() { setConfirmUnload(true); }); 
});

это нормально работает для обычных текстовых полей и флажков.

Я использую Telerik MVC ComboBox для которого отображаетсявходные теги, но, кажется, не запускают вышеупомянутый JQuery.

Есть идеи, как захватить это?

Вот как HTML отображает:

<div class="t-widget t-combobox t-header" id="InterviewRequired">
<div class="t-dropdown-wrap t-state-default">
    <input class="t-input" id="InterviewRequired-input" name="InterviewRequired-input" title="InterviewRequired" type="text" value="Select" />
    <span class="t-select t-header">
        <span class="t-icon t-arrow-down">select</span>
    </span>
</div>
<input id="InterviewRequired-value" name="InterviewRequired" style="display:none" type="text" value="0" />

Я также задавал этот вопрос на форумах Telerik на случай, если я не получу ответ здесь.

Ответы [ 2 ]

5 голосов
/ 03 апреля 2012

Вот список событий, которые вы можете прикрепить к: http://www.telerik.com/community/forums/aspnet-mvc/combobox/jquery-event-names.aspx

Если вы хотите прикрепить событие изменения более динамичным способом с помощью javascript, вы должны присоединиться к событию «valueChange», а не «change»:

$(document).ready(function() {
    $('#ComboBoxId').bind("valueChange", function() { setConfirmUnload(true); }); 
});
2 голосов
/ 17 марта 2011

Глядя на демку здесь .ComboBox отображается как <input/> и всплывающее окно <div/>

<div class="t-dropdown-wrap t-state-default">
  <input type="text" value="Chai" name="ComboBox-input" id="ComboBox-input" class="t-input" autocomplete="off">
  <span class="t-select t-header">
    <span class="t-icon t-arrow-down">select</span>
  </span>
</div>

при просмотре документов на стороне клиента, вам, скорее всего, потребуется зарегистрировать событие на стороне клиента, расположенное здесь .

   <%= Html.Telerik().ComboBox()
            .Name("ComboBox")
            .ClientEvents(events => events
                .OnChange("onChange")
            )
    %>

    <script type="text/javascript">
        function onChange(e) {
           setConfirmUnload(true);
        }
    </script>

также похоже, что вы должны иметь возможность делать это с помощью jQuery только из этого примера:

<%= Html.Telerik().ComboBox().Name("ComboBox") %>

<script type="text/javascript">
    $(document).ready(function() {
        $('#ComboBox').bind('change', function(e) { // your code });
    });
</script>

Возможно, попробуйте:

$(document).ready(function() {
    $('#myComboBox').bind("change", function() { setConfirmUnload(true); }); 
});
...