event.preventDefault()vs return false vs Event.stopPropagation()和其他方法

问题描述 投票:-2回答:1

我正在使用表格并提交$(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表单提交?

javascript jquery dom-events onsubmit
1个回答
2
投票

破败不堪:

  • 如果您只想阻止事件的默认(在这种情况下,提交表单),您可以使用event.preventDefault()
  • 您可以使用return false(在像您这样的jQuery事件处理程序中),如果您想同时阻止默认情况并停止将事件传播到祖先元素。 (请注意,这与return false在原生事件处理中的含义不同,正如我在this blog post中所述。)
  • 使用event.stopPropagation()(而不是Event.stopPropagation())根本不会阻止默认操作:表单仍将被提交。
  • 从处理程序中抛出错误不会阻止事件的默认操作。
  • 调用一个不存在的函数只是抛出一个错误,见上文。
© www.soinside.com 2019 - 2024. All rights reserved.