event.preventDefault() vs. return false vs Event.stopPropagation() 等方法

vin*_*deo 1 javascript jquery onsubmit dom-events

我正在使用表单并提交 $(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
Run Code Online (Sandbox Code Playgroud)

谁能解释一下我应该使用哪一个,以及是否有更多方法可以停止执行 Javascript 表单提交?

T.J*_*der 5

破败不堪:

  • 您可以使用event.preventDefault(),如果你只是想阻止事件的默认值(在这种情况下,提交表单)。
  • 您可以使用return false,如果你想(在你们这样一个jQuery的事件处理程序)阻止事件的祖先到元素的默认和停止传播。(请注意,这与return false本机事件处理中的含义不同,正如我在这篇博文中介绍的那样。)
  • 使用event.stopPropagation()(not Event.stopPropagation())根本不会阻止默认操作:表单仍将被提交。
  • 从处理程序抛出错误不会阻止事件的默认操作。
  • 调用一个不存在的函数只是抛出一个错误,见上文。