如何在按下回车键或返回键时阻止表单提交?

时间:2009-09-15 23:29:26

标签: javascript jquery

我有一个使用JQuery的表单,我认为我不需要在这篇文章中添加代码,这个问题非常基础。

但是当人们按下回车键或返回键时,我想阻止表单提交。

与此同时,我有textareas,用户需要能够按Enter / Return键。

4 个答案:

答案 0 :(得分:4)

快速而讨厌的黑客但通常比在每个字段中阻止按键更可靠:添加:

<input type="submit" onclick="return false;" />

位于表单顶部。表单中的第一个提交充当在当前浏览器中按Enter时的默认按钮,因此通过中性设置可以阻止输入提交。

然后使用CSS隐藏和/或移动按钮,使其无法看到。

尽管阻止输入提交并不总是一个好主意;它是预期浏览器工作的标准方式,有些用户确实需要它。

答案 1 :(得分:0)

在文档级别设置一个标志,submitform = false; 验证提交的内容。 更改提交按钮的onclick处理程序中的标志。

答案 2 :(得分:0)

无法在表单中添加onsubmit属性,然后使用回车键检查是否已提交?

答案 3 :(得分:0)

你可以试试这个

jQuery(document).ready(function(){
   validSubmit = false;
})

jQuery('myForm textarea').keypress(function(e) {
   if (e.which == 13) {
      validSubmit = true; // if the pressed key is enter, then allow submissions
   }
})

jQuery('myForm').submit(function(){
   if (!validSubmit) {
      return false;  //if submitting the form is not allowed, then cancel submission
   }
})

除非在textarea上按下回车键/返回键,否则这将取消所有提交。如果您使用的是按钮,则还需要添加一个功能。

jQuery('form button.validSubmit').click(function(){  //or 'form input[type="submit"]'
   validSubmission = true;
})