我正在尝试使用回车键提交文本区域中的文本。工作正常,但回车键总是在提交数据之前添加新行...
我知道我必须使用 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/