2011-03-17 25 views
1

我使用下面的代碼來捕捉變化的文本在HTML輸入:使用jQuery捕捉變化在Telerik的MVC ComboBoxFor

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

這工作正常正常的文本框和複選框。

我正在使用Telerik的MVC ComboBoxFor呈現輸入標記,但似乎沒有觸發上述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 forums的情況下,我沒有在這裏得到答案。

+0

? – Raja 2011-03-17 11:45:30

+0

不,我已經添加了HTML生成的問題 – ozz 2011-03-17 11:55:01

回答

2

觀看演示here。該組合框被渲染爲<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> 

着眼於客戶端的文檔,你最有可能將需要註冊位於here一個客戶端事件。

<%= 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); }); 
}); 
+1

感謝馬克,這工作的一種享受! – ozz 2011-03-17 12:04:22

5

繼承人就可以把事件的列表到: http://www.telerik.com/community/forums/aspnet-mvc/combobox/jquery-event-names.aspx

如果您想要將更改事件附加到更動態的方式使用JavaScript,你會附加到「valueChange」事件而不是「變化」:我沒有使用Telerik控制,但不應該ComboBoxFor渲染爲選擇而不是輸入

$(document).ready(function() { 
    $('#ComboBoxId').bind("valueChange", function() { setConfirmUnload(true); }); 
}); 
+0

+1最後,有用的東西! – Samuel 2014-07-07 20:49:46