使用jquery ui自动完成小部件时,请停止“输入”密钥提交表单

我有一个使用jquery自动完成UI插件的表单, http://jqueryui.com/demos/autocomplete/ ,除了当您按下回车键选择自动完成列表中的项目时,它都可以正常工作,它提交了形成。

我在.NET webforms站点中使用它,因此可能存在与.NET注入的表单相关联的javascript处理,它覆盖了jQuery的东西(我在这里推测)。

您可以在其上使用事件处理程序。

$("#searchTextBox").keypress(function(e) { var code = (e.keyCode ? e.keyCode : e.which); if(code == 13) { //Enter keycode return false; } }); 

看: jQuery Event Keypress:按下了哪个键?

另外: http : //www.cambiaresearch.com/c4/702b8cd1-e5b0-42e6-83ac-25f0306e3e25/javascript-char-codes-key-codes.aspx以获取密钥代码列表

 $("#autocomplete_field_id").keypress(function(event){ var keycode = (event.keyCode ? event.keyCode : event.which); if (keycode == '13') { event.preventDefault(); event.stopPropagation(); } }); 

一种方法是处理按键,如果是回车键则忽略它。

回答王牌post帮助我解决了我的问题。 虽然您应该注意到代码ace提供必须存在于$('input').autocomplete(*****) ,否则您将不会收到任何效果。

如果仍需要提交回车键,则在完成自动完成选择后,

 if (evt.keyCode === 13 && !$('.ui-autocomplete').is(':visible')) { $('.ui-button:first').click(); } evt.stopPropagation();