0

我希望对此有一个简单的解释,但我还没有找到它。

我试图触发一个表单来提交一个事件,当该表单提交时它应该有一个回调。当我只使用事件触发 .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>

这是一个很好的衡量标准:http: //jsfiddle.net/5bwGw/

任何想法我做错了什么?

4

2 回答 2

2

您没有触发提交,您正在设置一个函数以在提交时运行。

文档没有提到回调。

于 2013-10-14T23:21:32.217 回答
2

.submit()函数以及类似的函数.click(),可用于将操作绑定到事件或触发该事件。

如果你写foo.submit();,它作为简写foo.trigger('submit');

但是,如果您编写foo.submit( function() { alert('boing'); } );,它可以作为简写foo.on('submit', function() { alert('boing'); } );

就个人而言,我尽量避免使用简写,并直接使用.on(或在旧代码中.bind.trigger以避免任何混淆。

于 2013-10-14T23:27:01.120 回答