防止按钮提交输入密钥

问题描述:

我有两个按钮之一与id = enterToSubmit和其他id = clickToSubmit。当用户点击enterkey时,我想要“enterToSubmit”按钮提交表格 而不是“clickToSubmit”按钮。防止按钮提交输入密钥

在同一页上,我有一个文本框id = title,并且在页面加载时我隐藏了“enterToSubmit”按钮,直到用户在文本框中输入内容,然后用户可以按Enter键提交表单。

当用户按下Enter键时,如何防止“clickToSubmit”按钮提交?

可惜你不能改变 '默认' 的HTML提交按钮,它总是第一个input/buttonsubmit/image类型。因为Enter并不总是要提交一个表单,这取决于(a)什么类型的元素是关注的,(b)是否是shift/ctrl + enter被使用,(c)窗体中还有什么其他元素,以及(d)它是什么浏览器。如果你错过了一个案例,你会得到意外的默认提交;如果你遇到了不应该的情况,你会收到意外的提交意见。

所以一般来说,当你想控制表单的默认提交动作时,首先要在表单中放置一个额外的按钮作为第一个提交按钮。如果您不希望显示此按钮,则可以使用较大的负值left将其放在页面的旁边。 (这是一个有点难看,但通过displayvisibility隐藏它会阻止它在某些浏览器工作。)

因此,也许你可以“隐藏”在进入到提交通过使其消失按钮不能不其推关闭无法看到的页面,然后将其上的click事件捕获到return false并停止表单提交。

+0

+1这是有用的信息一如既往:) – Sarfraz 2010-11-02 07:36:00

当用户按下Enter键时,如何防止“clickToSubmit”按钮 提交?

试试这个:

$("#clickToSubmit").keypress(function(e){ 
    if(e.keyCode === 13){ 
     e.preventDefault(); 
    } 
}); 

尝试使用文本框验证码输入

$j("#title").keypress(function(e1){ 
    if(e1.keyCode==13){   // if user is hitting enter 
     return false; 
    } 
}); 

的提交按钮

$j("#clickToSubmit").submit(function(e1){ 
    if(e1.keyCode==13){   // if user is hitting enter 
     return false; 
    } 
}); 

jQuery('#clickToSubmit').click(function(e){  
     if(e.keyCode==13){   
      e.preventDefault(); 
     }  
    }); 

首先,你必须确保两个按钮都不是提交类型。现在在这两个按钮上你可以调用两个不同的JavaScript函数。 enterToSubmit()并单击ToSubmit()也可以看到在enterToSubmit()上你看到了输入键按

if(e.keyCode === 13){0} {0} {0} {0} }

,并调用form.submit()

同时clickToSubmit()你直接做form.submit()

+0

代码格式不正确。 – 2017-12-05 22:18:05

$('#formId').on('keyup keypress', function(e) { 
      var keyCode = e.keyCode || e.which; 
      if (keyCode === 13) { 
      e.preventDefault(); 
      return false; 
      } 
     }); 



Usually form is submitted on Enter when you have focus on input 
elements. 
We can disable Enter key (code 13) on input elements within a form. 

此外,由于在Firefox中的一些较新版本的表单提交不 阻止,它的安全按键事件添加到窗体为好。

+0

关于这段代码的一些解释可能是有益的。 – Pyves 2017-07-17 08:04:11