knockout.js - 有没有办法避免敲击时的提交绑定(bind)在按下回车键时发送表单?

标签 knockout.js

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

最佳答案

一种选择是添加 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>

​​​
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/

关于knockout.js - 有没有办法避免敲击时的提交绑定(bind)在按下回车键时发送表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10285154/

相关文章:

javascript - 选择多次显示的菜单

javascript - 当 observableArray 是其他模型的属性时,Knockout 不会更新 UI

c# - 将数据推送到 ko.observableArray

javascript - 在 Knockoutjs 上操作 DOM 元素 "before-value-changed"

在 KnockoutJS 中更改模型数据时发生 Javascript 内存泄漏

javascript - 通过 AJAX 调用问题 knockout 自定义验证

javascript - 表格不绑定(bind)到模型的 knockout 选项

javascript - 在 KnockoutJS 中使用 bool 值显示隐藏 div 并应用 css 规则

javascript - 如何将 list.js 与 Hot Towel 模板一起使用

javascript - anchor 标记的数据绑定(bind) href 属性