按返回/输入时,表单提交两次

时间:2010-02-19 07:27:33

标签: javascript jquery forms

我正在使用锚点作为链接,而且我正在绑定enter / return键以提交表单,如下所示:

$("form[name!=smsform]").bind("keyup", function(e){
if(e.keyCode == 13){
$(this).submit();
});

$("a[title=submit]").click( function(){
$(this).parents("form").submit();
});

然而,当使用上面的代码单击输入/返回时,表单提交两次,我需要合并两个片段 - 任何人都知道如何去做这个?

3 个答案:

答案 0 :(得分:5)

当您单击Enter时,表单将自动提交,您无需自己编写代码。如果要在提交之前向enterkey事件添加一些测试,则可以从回调函数返回false以防止默认的浏览器操作。

答案 1 :(得分:2)

在调用提交之前,请尝试阻止enter键的默认操作。

答案 2 :(得分:2)

通常这意味着您的链接浏览器的默认机制都在提交表单。为了防止这种情况,在表单的submit事件上放置一个处理程序来阻止(停止)它(当您以编程方式提交表单时不会触发事件,因此它不会阻止您的链接发送它)。