阻止按钮在输入密钥上提交

ɹǝʞ*_*ɐʇs 7 javascript jquery jquery-plugins

我有两个按钮,一个是id = enterToSubmit,另一个是id = clickToSubmit.当用户点击enterkey时,我想要"enterToSubmit"按钮提交表单而不是"clickToSubmit"按钮.

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

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

bob*_*nce 11

不幸的是,你不能改变"默认"的HTML提交按钮,它总是第一个input/ button类型submit/ image.

虽然您可以尝试keypress手动捕获Enter 事件,但这样做非常不可靠,因为Enter并不总是应该提交表单,具体取决于(a)关注的元素类型,(b)是否shift/ctrl + enter使用,(c)形式中的其他元素和(d)它是什么浏览器.如果你错过了一个案例,你会得到意外的默认提交; 如果你遇到一个案件,你不应该,你会得到意外的输入提交.

因此,当您想要控制表单的默认提交操作时,通常会更好,在表单中添加一个额外的按钮作为第一个提交按钮.如果您不希望显示此按钮,则可以使用较大的负值对其进行定位,left以将其从页面侧面推出.(这有点难看,但隐藏它displayvisibility将阻止它在某些浏览器中工作.)

因此,也许您可​​以"隐藏"输入提交按钮,而不是让它消失,而是将其推出无法看到的页面,然后将其click上的事件捕获return false并停止提交表单.


Sar*_*raz 10

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

试试这个:

$("#clickToSubmit").on("keydown", function(e){
   if(e.keyCode === 13){
       e.preventDefault();
   }
});
Run Code Online (Sandbox Code Playgroud)