![](/img/trans.png)
[英]JQuery: Keyup, how do I prevent the default behavior of the arrow (up & down) and enter key?
[英]How do I prevent the Enter button from running its default behavior in Firefox 12?
我有一个用ASP.NET构建的表单。 第一个控件允许用户从自动完成列表中选择一个人。 当用户按下Enter键时,它将刷新页面并复制通过第一个控件获取的任何信息。 我试图从刷新页面中删除enter键的功能。 此代码均适用于Chrome和IE7 / 8/9(不关心6)。 我需要的只是返回false,因为它可以在我们支持的除Firefox之外的所有浏览器中工作。 .click()是一个奖励,可以将一些可用性添加回密钥(这样它将激活控件并选中或取消选中复选框等)
这些都不适用于Firefox 12.点击发生(证明我希望它到达代码)但页面每次都刷新。
focusNextInputfield()是来自类似问题的建议之一,并没有做我想做的任何事情。 它可能已经完成了它的目的,但我无法分辨,因为页面刷新了。
我发现了自己的另一个类似问题的preventDefault()和stopPropagation(),它在FF中没有做任何事情。
我甚至尝试过回归真实。
$(document).keydown(function (event) {
//handles what happens when the user hits enter
if (document.activeElement.nodeName !== 'TEXTAREA') {
if (event.keyCode === 13 || event.which === 13) {
$(document.activeElement).click();
// $(document.activeElement).focusNextInputField();
event.preventDefault();
event.stopPropagation();
return false;
}
}
});
我只是在寻找任何有关FireFox 12中没有任何影响的建议或消息吗? 而且我知道代码已经到达并且它都可以正常运行而且没有错误,即使使用了所有多余的代码,它仍然可以在Chrome和IE 7/8/9中正常运行,正如我所说的那样。
通过较早的迭代,我尝试强制单击提交按钮,但仍然会刷新并验证,总体上是一个糟糕的用户体验。
看起来你正在使用jQuery所以你只需要在表单提交事件中防止默认。
$j("#form-id").submit(function(e) {
e.preventDefault();
...
});
要么:
$j("#form-id").submit(false);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.