当前位置: 首页 > 编程笔记 >

HTML页面禁用Enter键自动提交表单的方法

耿招
2023-03-14
本文向大家介绍HTML页面禁用Enter键自动提交表单的方法,包括了HTML页面禁用Enter键自动提交表单的方法的使用技巧和注意事项,需要的朋友参考一下

在HTML页里面由于使用了form,常常需要禁用enter提交表单。因为内容页或者母版页自身有如果有type="submit"的button,当textbox聚焦时,按下enter都会触发表单的默认提交(不论是IE还是firefox),于是需要在onkeydown中监听用户的按键。实际测试,IE8中导致表单提交的不确定因素太多,点击表单的table中的td都会触发表单提交,而firefox则不会;于是在ie和ff中禁用表单提交需要不同的思路。

对于IE:

只有当事件源是TEXTAREA时才return true,允许默认动作;其他元素全部return false,禁止表单提交和任何响应。

对于firefox:

只有当事件源是INPUT时才return false禁止表单默认动作;而其他元素则return true允许默认动作,比如textarea的多行输入。

于是完整的代码如下:

<mce:script language="javascript" type="text/javascript"><!-- 
 //禁用Enter键表单自动提交 
  document.onkeydown = function(event) { 
   var target, code, tag; 
   if (!event) { 
    event = window.event; //针对ie浏览器 
    target = event.srcElement; 
    code = event.keyCode; 
    if (code == 13) { 
     tag = target.tagName; 
     if (tag == "TEXTAREA") { return true; } 
     else { return false; } 
    } 
   } 
   else { 
    target = event.target; //针对遵循w3c标准的浏览器,如Firefox 
    code = event.keyCode; 
    if (code == 13) { 
     tag = target.tagName; 
     if (tag == "INPUT") { return false; } 
     else { return true; } 
    } 
   } 
  }; 
  
// --></mce:script> 

将上述的javascript代码应用于需要禁用Enter键自动提交表单的页面,经测试IE,Firefox和Chrome浏览器都完美解决Enter键自动提交表单问题。

以上这篇HTML页面禁用Enter键自动提交表单的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 在这种特殊情况下,当我按Enter键时,我必须使用哪些选项使这些输入调用函数? Html:

  • 本文向大家介绍js实现键盘Enter键提交表单的方法,包括了js实现键盘Enter键提交表单的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现键盘Enter键提交表单的方法。分享给大家供大家参考。具体实现方法如下: 最后只需要在body中加入:<body onkeydown="keyDown(event);">。   或者如下方法,但是在火狐浏览器下不兼容: 希望本文所述对大家

  • 问题内容: 我只是写了这个漂亮的小函数,它可以在表单本身上工作… 按照我的逻辑,我想在输入textarea期间接受回车。同样,将输入字段的回车键行为替换为跳到下一个输入字段的行为(就像按下Tab键一样)将是额外的好处。有谁知道使用事件传播模型正确触发适当元素上的回车键,但阻止表单在其按下时提交的方法吗? 问题答案: 这是我功能的修改版本。它执行以下操作: 防止Enter键在除textarea,bu

  • 问题内容: PrimeFaces在按Enter键时禁用提交。 我正在运行在WildFly 8.2 Final上运行的PrimeFaces 5.1。 我有对话框,有两个inputNumbers和两个按钮。并且第一个inputNumber对ajax模糊事件进行一些计算。按钮旁边是在bean中进行一些计算的按钮。问题是,当用户在焦点位于inputNumber时按Enter时,按钮的动作被触发,这确实很烦

  • 我正在尝试在用户按回车键时提交登录表单。单击“登录”按钮时,表单运行良好,但按回车键不起作用,此外,还会导致奇怪的行为: 未执行由ng submit关联的功能 按enter键后,不再显示错误消息(登录失败) 以下是我的标记: 注意,我尝试替换了<代码> 具有login()函数的相应控制器如下所示: 我运行angularv1.4.0并使用angular-用户界面-router v.0.2.15进行路

  • 问题内容: 我有一个HTML表单,其中使用了几个按钮。问题是,无论我单击哪个按钮,即使该按钮的类型不是“ submit”,也将提交表单。例如:之类的按钮,导致表单提交。 为这些按钮中的每个按钮执行一次操作是非常痛苦的。 我使用jQuery和jQuery UI,并且网站使用HTML5。 有没有办法禁用这种自动行为? 问题答案: 像按钮 是 提交按钮。 设置以改变它。是默认值(由HTML建议指定)。