使用kendoui和jquery双击禁用kendo numerictextbox小部件

时间:2012-11-07 10:05:26

标签: javascript jquery kendo-ui kendonumerictextbox

我有这个HTML。双击我想禁用/启用下拉列表:

<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>

我能够使用kendo Api从这里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的方式?

2 个答案:

答案 0 :(得分:5)

您可以过滤data-role属性,以便选择所需的input,如下所示:

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

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

答案 1 :(得分:2)

 var numerictextbox = $("#numerictextbox").data("kendoNumericTextBox");

 numerictextbox.enable();

 numerictextbox.enable(false);

http://demos.telerik.com/kendo-ui/numerictextbox/api enter link description here