微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何区分单击提交按钮和输入输入以提交表单?

具体来说,我不想在按下回车键时使用已推荐的event.preventDefault()方法,因为这会破坏至少Internet Explorer中数据表的功能.

我尝试了一些方法

$("#form").submit(function(event){
    console.log(event);
    return false; // Allows me to read the console before the form submits!
});

要比较事件之间的差异(单击提交按钮与按Enter键),似乎没有任何明显的事情.我本以为后者有一个event.keyCode,但事实并非如此.

我能想到的一个冗长的解决方法似乎是删除我的提交按钮,并将其替换为常规按钮,其单击必须提交表单.但是那样,我必须在输入中捕获输入键按下并处理从头开始提交表单.丑陋,但可行.同样,如果我能帮助它,我不想应用任何preventDefault().

解决方法:

一种hacky解决方案,但您可以将事件处理程序绑定到单击提交按钮,而不是提交#form.然后,您可以检查是否存在与事件关联的非零坐标.如果是,则单击提交按钮,否则,按下回车键.例如

$("input[type='submit']").click(function(event){
    if (event.screenX === 0) alert("You hit the enter key!");
    else alert("You clicked the submit button!");

    return false; // Allows me to read the console before the form submits!
});

JSFiddle Here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐