我有以下:
<script type="text/javascript"> function CancelFormButton(button) { $(button.form).submit(); } </script> <form onsubmit="alert('here');"> <input type="button" value="Cancel" onClick="CancelFormButton(this);" /> </form>
当我单击“取消”按钮时,不会触发来自表单标记的onsubmit。
这行代替提交表单成功:$(button.form).submit();但跳过警报(‘here’);在onsubmit中的形式标签。
这是正确的,还是我做错了什么?
顺便说一下,在这种情况下,我想要这个功能,但我只是想知道,如果我将遇到一个问题,在浏览器的onsubmit触发。
解决方法
对不起,误解了你的问题。
根据Javascript – capturing onsubmit when calling form.submit():
I was recently asked: “Why doesn’t the
form.onsubmit event get fired when I
submit my form using javascript?”The answer: Current browsers do not
adhere to this part of the html
specification. The event only fires
when it is activated by a user – and
does not fire when activated by
code.
(强调添加)。
注意:“由用户激活”还包括点击提交按钮(可能包括从输入键的默认提交行为,但我没有尝试过)。我相信,如果你(用代码)点击提交按钮,它会触发。