由于单击按钮,会引发检测提交事件

时间:2013-02-03 12:20:37

标签: javascript

是否可以找出onsubmit事件是否因为onclick事件被引发而被引发? 例如,当点击<input type="submit" />时,会引发onclick事件,然后提交onsubmit事件。但是,有时会发生表单未提交,即未提交onsubmit。

重现的步骤(表单是ajax表单,它自行刷新,在IE10上测试):
1)单击按钮提交表单,
2)ajax请求完成并更新表格,
3)5毫秒之后,再次单击该按钮(与步骤1中的方式相同)但是这次触发了onclick但是onsubmit却没有。如果我单击按钮,例如,在表单刷新后500毫秒,一切都很好

我用左 $("form input[type=submit], form input[type=image]").live("click", function (e) { console.log("click"); }
$("form").live("submit", function (e) { console.log("submit"); }
看到onsubmit没有被提出

谢谢

1 个答案:

答案 0 :(得分:0)

不确定你的意思但我无法在Firefox中重现,你也不应该使用.live:

http://api.jquery.com/live/

  

从jQuery 1.7开始,不推荐使用.live()方法。使用.on()来   附加事件处理程序。旧版jQuery的用户应该使用   .delegate()优先于.live()。

$(document).ready(function(){
    $("#form").delegate(null,"submit", function(){
        console.log("submitting");
        return false;
    });
    $("#submit").click();
    $("#submit").click();
    $("#submit").click();
    $("#submit").click();
});


<form id="form">
    <input type="submit" id="submit"></input>
</form>
相关问题