我有这个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的方式?
答案 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