我有一个使用jquery自动完成UI插件http://jqueryui.com/demos/autocomplete/的表单,除了当您按下回车键选择自动完成列表中的项目时,它都可以正常工作,它提交表单。
我在.NET webforms网站中使用它,因此可能存在与.NET注入的表单相关联的javascript处理,它覆盖了jQuery的东西(我在这里推测)。
答案 0 :(得分:15)
您可以在其上使用事件处理程序。
$("#searchTextBox").keypress(function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if(code == 13) { //Enter keycode
return false;
}
});
答案 1 :(得分:5)
$("#autocomplete_field_id").keypress(function(event){
var keycode = (event.keyCode ? event.keyCode : event.which);
if (keycode == '13') {
event.preventDefault();
event.stopPropagation();
}
});
答案 2 :(得分:4)
一种方法是处理按键,如果是回车键则忽略它。
答案 3 :(得分:2)
答案王牌帖子帮助我解决了我的问题。虽然您应该注意到{ace}提供的代码必须在$('input').autocomplete(*****)
之前存在,否则您将不会收到任何效果。
答案 4 :(得分:2)
如果您仍希望在完成自动填充选择后提交回车键,
if (evt.keyCode === 13 && !$('.ui-autocomplete').is(':visible')) {
$('.ui-button:first').click();
}
evt.stopPropagation();
答案 5 :(得分:0)
您可以尝试以下方法:
Date
这将仅在输入文本框中禁用Enter键
答案 6 :(得分:0)
一行代码:
module.exports.provider = serverless => {
// The `serverless` argument containers all the information in the .yml file
const provider = serverless.service.provider;
return Object.entries(provider).reduce(
(accumulator, [key, value]) => ({
...accumulator,
[key]:
typeof value === 'string'
? {
lowercase: value.toLowerCase(),
uppercase: value.toUpperCase()
}
: value
}),
{}
)
};
此处与接受的答案不同的三件事:
npm run build
标准化,因此无需测试$("#searchField").on('keypress', (event) => event.which !== $.ui.keyCode.ENTER);
和event.which
。event.keyCode
访问命名的键控代码,从而使其更具可读性。