我正在使用 jQuery,希望用户可以在将数据输入到搜索字段后按 Enter 键来开始搜索。
我使用以下代码:
$('#textSearch').keyup(function (event) {
if (event.keyCode == '13') {
doSearch();
}
return false;
});
它在 Firefox 和 IE 中运行完美,但在 Safari 中则完全不行。发生的情况是,当我在 Safari 中按 Enter 键时正在提交表单,但这不是我想要的。
添加 onsubmit="return false;"表单可以工作,但不是一个选项,因为表单标记位于 asp.net 页面的母版页上,并且我需要在其他页面上提交表单。
是否有办法在 Safari 中也能使用此功能?
编辑: 我还尝试只显示警报而不是 doSearch() 函数。警报显示正常,但之后表单正在提交。
最佳答案
浏览器对于触发提交的事件可能有所不同。在这种情况下,Safari 可能会在 keydown 事件上提交。
您可以在不更改标记的情况下监视提交事件并取消它:
$('#the-id-of-the-form').submit( function( e ) {
e.preventDefault();
});
然后您可以监听 keyup 事件并像现在一样处理它。
关于Safari 中的 jQuery keyup 和 'enter',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3850212/