ドキュメント(knockoutjs.com/documentation/submit-binding.html)によると、knockoutjsの送信バインディングには、テキストボックスに入力しているときにEnterキーを押すなど、フォームを送信する別の方法をキャプチャできるという利点があります。フォームにグリッドがあり、一部のユーザーはEnterキーを使用して1つのフィールドから次のフィールドに移動しようとしています。これが発生したときにフォームを送信しないようにする方法はありますか?
質問する
4267 次
1 に答える
9
1つの選択肢はkeypress
、Enterキーを吸収するハンドラーもフォームに追加することです。次のようになります。
<form data-bind="event: { keypress: absorbEnter }, submit: test">
<div data-bind="absorbEnter: true">
<input data-bind="value: name">
<input type="submit" value="Go" />
</div>
</form>
js:
var viewModel = {
name: ko.observable("test"),
absorbEnter: function(data, event) {
return event.keyCode !== 13;
},
test: function() {
console.log("submitting", arguments);
}
};
ko.applyBindings(viewModel);
こちらのサンプル:http://jsfiddle.net/rniemeyer/FvZXj/2/
于 2012-04-23T18:34:52.777 に答える