javascript阻止enterKey添加新行

标签 javascript knockout.js default

我正在尝试使用回车键提交文本区域中的文本。工作正常,但回车键总是在提交数据之前添加新行...

我知道我必须使用 event.preventDefault() 但它对我不起作用。

ko.bindingHandlers.enterKey = {
    init: function (element, valueAccessor, allBindingsAccessor, data) {
        var wrappedHandler, newValueAccessor;

        // wrap the handler with a check for the enter key
        wrappedHandler = function (data, event) {
            if (event.keyCode === ENTER_KEY && !event.shiftKey) {                   
                event.target.blur();
                valueAccessor().call(this, data, event);
            }
        };

        // create a valueAccessor with the options that we would want to pass to the event binding
        newValueAccessor = function () {
            return {
                keyup: wrappedHandler
            };
        };

        // call the real event binding's init function
        ko.bindingHandlers.event.init(element, newValueAccessor, allBindingsAccessor, data);
    }
};

最佳答案

您应该在 keypress 事件上调用 event.preventDefault
例如,下面的代码可防止按下 Enter 键

ko.bindingHandlers.enterKey = {
    init: function (element, valueAccessor, allBindingsAccessor, data) {
        $(element).keypress(function(e) { 
            (e.keyCode == 13) {
               e.preventDefault();
               // do something else
            }
        })
    }
}

关于javascript阻止enterKey添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23801855/

相关文章:

javascript - 忽略循环中具有特定属性的项目

javascript - 在 Ajax 中同时传递 Json 对象和字符串值

android - 以编程方式将默认样式设置回按钮

VBA:回答 "save as - overwrite"提示(和其他)不使用默认选项

javascript - 如何通过JavaScript获取html List的值?

javascript - 将数据从 Ajax 发送到 Laravel Controller 。维埃斯

javascript - Jquery Sortable,在启用溢出的容器内使用链表

javascript - 使用 Typescript 和 requirejs 时我应该把我的 Knockout.js 扩展放在哪里

knockout.js - knockout 点击绑定(bind)的自定义参数

swift - 多个默认参数调用的语法