Отключение виджета kendo numerictextbox при двойном щелчке с помощью kendoui и jquery
У меня есть этот 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>
Я смог сделать это с помощью решения отсюда манипулировать свойством дочернего элемента, используя кендо Api:
$('tr').dblclick(function() {
var $kd = $(this).find('input').data("kendoDropDownList");
$kd.enable( $kd.element.is(':disabled') );
});
У меня есть числовой виджет Кендоуи. Кажется, что фреймворк 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'));
});
Но это не работает, я думаю, потому что есть два входа. У меня вопрос, как я могу включить / отключить числовой виджет при двойном щелчке, аналогично тому, как отключен kendodropdown?
2 ответа
Решение
Вы можете фильтровать для data-role
атрибут, так что вы можете выбрать нужный input
, как это:
$('tr').dblclick(function () {
var $ntb = $(this).find('input[data-role="numerictextbox"]').data("kendoNumericTextBox");
$ntb.enable($ntb.element.is(':disabled'));
});
var numerictextbox = $("#numerictextbox").data("kendoNumericTextBox");
numerictextbox.enable();
numerictextbox.enable(false);
http://demos.telerik.com/kendo-ui/numerictextbox/api введите описание ссылки здесь