4

私はこの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 を使用して子要素のプロパティを操作するhere のソリューションでこれを行うことができました。

$('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'));
    });

しかし、2つの入力があるため、これはうまくいきません。私の質問は、ケンドドロップダウンが無効になっているのと同じように、ダブルクリックで数値ウィジェットを有効/無効にするにはどうすればよいですか?

4

2 に答える 2

6

次のように、属性をフィルタリングしdata-roleて、目的の を選択できますinput

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

    $ntb.enable($ntb.element.is(':disabled'));
});
于 2012-11-07T10:43:52.073 に答える