event.preventDefault()与返回false与Event.stopPropagation()和其他方法

时间:2019-03-22 07:55:54

标签: javascript jquery dom-events onsubmit

我正在使用表格并提交  $(document).on('submit','form',function(event){

现在我要停止提交表单以进行验证。我找到的选项是

event.preventDefault()
Event.stopPropagation()
return false
throw new Error("Something went badly wrong!");
calling a fake function which does not exist

有人会解释我应该使用哪一种吗?还有更多方法可以停止执行Javascript表单提交吗?

1 个答案:

答案 0 :(得分:2)

摘要:

  • 如果您要阻止默认事件(在这种情况下,提交表单),则可以使用event.preventDefault()
  • 如果要两者阻止默认设置并停止将事件传播到祖先元素,可以使用return false(在类似您的jQuery事件处理程序中)。 (请注意,这与return false在本机事件处理中的含义不同,正如我在this blog post中介绍的那样。)
  • 使用event.stopPropagation()(而不是Event.stopPropagation()完全不会阻止默认操作:仍将提交表单。
  • 从处理程序中引发错误不会阻止事件的默认操作。
  • 调用不存在的函数只会引发错误,请参见上文。