Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用enter键禁用表单提交?_Javascript - Fatal编程技术网

Javascript 如何使用enter键禁用表单提交?

Javascript 如何使用enter键禁用表单提交?,javascript,Javascript,我在enterkeypress上有一个js事件,效果很好。但在该事件之后,它还提交了带有提交按钮的表单。如何在上一次按键事件后阻止提交按钮获得焦点 编辑:我不希望提交按钮在输入时提交,只需单击即可。不确定我是否理解正确,但如果您试图阻止表单提交: 附加onsubmit事件并从中返回false <form onsubmit="submit_handler();"></form> [...] function submit_handler() { //do stuf

我在enterkeypress上有一个js事件,效果很好。但在该事件之后,它还提交了带有提交按钮的表单。如何在上一次按键事件后阻止提交按钮获得焦点


编辑:我不希望提交按钮在输入时提交,只需单击即可。

不确定我是否理解正确,但如果您试图阻止表单提交:

附加onsubmit事件并从中返回false

<form onsubmit="submit_handler();"></form>
[...]

function submit_handler()
{
    //do stuff
    return (false);
}

[...]
函数submit_handler()
{
//做事
返回(假);
}

对于“我如何防止我的表单在我之后提交”类型的javascript问题,通常的答案是“使您的javascript函数返回
false

任何回车键都会触发提交事件 您需要覆盖它-这里有一个简短的示例代码(5行)如何做

您可以使用java脚本执行以下操作:

    <script type="text/javascript">

    function stopReloadKey(evt) {
      var evt = (evt) ? evt : ((event) ? event : null);
      var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
      if (evt.keyCode == 13)  {
          return false;
      }
    }

    document.onkeypress = stopReloadKey;

    </script> 

功能stopReloadKey(evt){
var evt=(evt)?evt:((事件)?事件:空);
var节点=(evt.target)?evt.target:((evt.srcement)?evt.srcement:null);
如果(evt.keyCode==13){
返回false;
}
}
document.onkeypress=停止重新加载键;
或者使用Jquery,您可以通过

<script type="text/javascript">
        $(document).ready(function() {
           $("form").bind("keypress", function(e) {
              if (e.keyCode == 13) {
                 return false;
              }
           });
        });
</script>

$(文档).ready(函数(){
$(“形式”).bind(“按键”),函数(e){
如果(e.keyCode==13){
返回false;
}
});
});

好的,用按钮代替提交。因此,我觉得这是值得重复的:我强烈反对这种非标准行为——除非你有一个非常好的、非常具体的用例,在这个用例中,这个功能仅仅是必须改变的。除此之外,这里的答案是正确的:您的按键事件处理程序应该只返回“false”。@anonymouscoward-许多嵌入式或类似终端的系统没有用于在字段之间移动的制表键。用户已经习惯于在输入数据后按ENTER键进入下一个字段。我同意这是非最优的,但事实就是如此。这会奏效的。尽管我强烈反对非标准行为——除非你有一个非常好的、非常具体的用例,在这个用例中,这个功能仅仅是必须改变的?他只想和mouseclick一起提交,而不是enterkeyYeah,我对他的问题发表了评论。