有没有办法避免在按下回车键时knockoutjs的提交绑定发送表单?

jga*_*rza 6 knockout.js

根据文档(knockoutjs.com/documentation/submit-binding.html),knockoutjs的提交绑定的优势在于它捕获了提交表单的其他方法,例如在输入文本框时按Enter键.我的表单上有一个网格,一些用户正在尝试使用回车键从一个字段转到下一个字段.有没有办法避免在发生这种情况时提交表格?

RP *_*yer 9

一种选择是keypress在窗体上添加一个吸收输入键的处理程序.它看起来像:

<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>
Run Code Online (Sandbox Code Playgroud)

js:

var viewModel = {
    name: ko.observable("test"),
    absorbEnter: function(data, event) {
       return event.keyCode !== 13;  
    },
    test: function() {
        console.log("submitting", arguments);        
    }
};
ko.applyBindings(viewModel);
Run Code Online (Sandbox Code Playgroud)

此处示例:http://jsfiddle.net/rniemeyer/FvZXj/2/