2012-11-07 33 views
2

我有這個html。雙擊我想禁用/啓用下拉:使用kendoui和jquery禁用雙擊kendo numerictextbox小部件

<tr> 
    <td><label id="labelId" >My Label</label></td> 
    <td><input type="text" id="myInput" data-bind="kendoDropDownList: { data: source, value: myValue, enable: true }" /></td> 
</tr> 

我能夠用劍道阿比從這裏manipulate a property of a child element解決方案要做到這一點:

$('tr').dblclick(function() { 
    var $kd = $(this).find('input').data("kendoDropDownList"); 
    $kd.enable($kd.element.is(':disabled')); 
}); 

我有一個kendoui數字小部件。看來,kendoui框架增加了一些額外的HTML元素和最終的HTML看起來像這樣:

<tr> 
     <td><label id="labelId" >My Label</label></td> 
     <td><input class="k-formatted-value k-input" style="display: inline-block;" type="text" readOnly="readonly"/> 
      <input name="Afk" class="k-input" id="Afk" style="display: none;" type="text" data-bind="kendoNumericTextBox: { value: Afk, min:1, max:10000, step:1, format: 'd'}" data-role="numerictextbox" required=""/> 
     <td> 
    </tr> 

我嘗試這樣做:

$('tr').dblclick(function() { 
     var $ntb = $(this).find('input').data("kendoNumericTextBox"); 

     $ntb.enable($ntb.element.is(':disabled')); 
    }); 

但是,這並不工作,我想是因爲有兩個輸入。我的問題是如何啓用/禁用doubleclick上的數字小部件,類似於禁用kendodropdown的方式?

回答

5

您可以過濾data-role屬性,所以你可以選擇你想要的input,像這樣:

$('tr').dblclick(function() { 
    var $ntb = $(this).find('input[data-role="numerictextbox"]').data("kendoNumericTextBox"); 

    $ntb.enable($ntb.element.is(':disabled')); 
}); 
+0

我做了類似的事情,但搜索name屬性...反正我喜歡你的方式更多。 – Mdb