1

入力用の keyPress (enter) バインディングを作成する必要があります。

<div id="body">
    <input type="text" data-value-update="keyup" data-bind="value: text, keyPress: onKeyPress"/>
    <div id="output"></div>
</div>

js:

kendo.data.binders.widget.keyPress = kendo.data.Binder.extend({
    init: function (element, bindings, options) {
        kendo.data.Binder.fn.init.call(this, element, bindings, options);
        var binding = this.bindings.keyPress;
        $(element.input).bind("keypress", function (e) {
            if (e.which == 13) {
                binding.get();
            }
        });
    },
    refresh: function () { }
});

var viewModel = kendo.observable({
    text: '',
    onKeyPress: function () {
        $("#output").append("<div>keyPress</div>");
    }
});

kendo.bind("#body", viewModel);

エラーがありました:

エラー: keyPress バインディングは入力要素でサポートされていません

jsfiddle の例http://jsfiddle.net/dude_jsfiddle/byA75/

4

1 に答える 1

5

ウィジェット バインディングを作成するときは、kendo.data.binders.widget名前空間を使用する必要があります。roleウィジェットは、データ属性が設定されている要素に対して作成されます。必要なkendo.data.bindersものは次のとおりです。

kendo.data.binders.keyPress = kendo.data.Binder.extend({
});

詳細については、カスタム バインディングのヘルプ トピックを参照してください。

于 2013-05-23T13:36:06.377 に答える