我希望对此有一个简单的解释,但我还没有找到。
我试图触发一个表单来提交一个事件,当该表单提交时它应该有一个回调。当我仅使用事件触发 .submit() 而不使用任何提交回调时,我的代码可以工作,并且提交回调在事件触发器之外工作,但我没有设法使它们同时工作。
我的 JavaScript 如下:
$("#test_form #notabutton").click( function () {
alert("Checkpoint 1");
$('#test_form').submit( function( event ) {
alert("Checkpoint 2");
return;
});
});
还有我的 html:
<form id="test_form">
<input type="checkbox" name="letter" value="Alpha">Alpha<br>
<input type="checkbox" name="letter" value="Bravo">Bravo
<!-- <input type="submit" value="Submit"> -->
<div id="notabutton" style="height:100px; width:100px; background-color:blue;"></div>
</form>
这是一个很好的jsfiddle:http://jsfiddle.net/5bwGw/ .
知道我做错了什么吗?
最佳答案
.submit()
function以及 .click()
等类似函数可用于将操作绑定(bind)到事件或触发该事件。
如果您编写 foo.submit();
,它将充当 foo.trigger('submit');
如果您编写 foo.submit( function() {alert('boing'); } );
,它会充当 foo.on('submit ', function() {alert('boing'); } );
就我个人而言,我尽量避免使用简写,并使用 .on
(或在旧代码中 .bind
)和 .trigger
直接,以避免任何混淆。
关于javascript - .click 中的 jQuery .submit( [callback] ) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19370807/