处理$(&#34;表格&#34;)。提交或<input type =“submit”/>点击事件之间的区别?

时间:2012-10-08 15:58:06

标签: jquery forms submit

说我有以下HTML:

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

我有一个javascript方法validate,用于检查各种无效方案的表单字段,如果一切正常则返回true,如果出现错误则返回false

在执行此操作之间jQuery是否有任何真正的区别:

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

......或者这样做:

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

这两者之间有什么优点/缺点吗?

3 个答案:

答案 0 :(得分:15)

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

答案 1 :(得分:2)

点击事件会提前触发,提交事件会在点击事件后触发。

提交:

  • 如果某些数据错误(Minior和旧浏览器)
  • ,可能为时已晚
  • 同时触发提交命令

点击:

  • 压倒性的事件,几乎所有事情都与点击绑定。性能
  • 不会触发提交命令

答案 2 :(得分:1)

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

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