繁体   English   中英

如何阻止Enter按钮在Firefox 12中运行其默认行为?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM