13

Say I have the following HTML:

<form>
    ...some form fields...
    <input type="submit" id="submitButton" value="Submit" />
</form>

And I have a javascript method validate that checks the form fields for various invalid scenarios, returning true if all is well or false if there's something wrong.

Is there any real difference in jQuery between doing this:

$("form").submit(function() {
    return validate();
});

...or doing this:

$("#submitButton").click(function(){
    return validate();
});

And are there any advantages/disadvantages between the two?

4

3 回答 3

17

仅当用户实际单击提交按钮时才会调用单击回调。但是在某些情况下,您会通过 javascript 自动提交表单,在这种情况下,在提交回调时不会触发点击回调。我建议始终将提交用于表单的验证和内在操作,同时将单击回调用于动画或与单击按钮的操作相关的其他内容。

于 2012-10-08T16:02:11.747 回答
2

点击事件更早触发,提交事件在点击事件之后触发。

提交:

  • 如果某些数据错误(小型和旧浏览器),可能为时已晚无法阻止事件
  • 在提交命令上也触发

点击:

  • 压倒性的事件,几乎所有东西都与点击绑定。表现?
  • 不会在提交命令上触发
于 2012-10-08T16:02:20.987 回答
1

第一种方法的优点是,如果您的表单是通过多个按钮提交或完成不同的操作,那么仅将验证放在提交按钮上意味着如果通过其他方法提交,表单可能处于无效状态。

最好的方法是对表单提交进行验证,因为这样,无论表单如何提交(通过按钮单击,以编程方式从其他地方),验证仍然会被触发。

于 2012-10-08T16:02:08.427 回答