0

是否有可能找出是否引发了 onsubmit 事件,因为引发了 onclick 事件?例如,当单击 an 时<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

谢谢

4

1 回答 1

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>
于 2013-02-03T12:59:40.670 回答