【问题标题】:what's the difference of return true or false here?这里的 return true 或 false 有什么区别?
【发布时间】:2011-05-12 12:54:35
【问题描述】:
$('form').submit(function() {
  alert($(this).serialize());
  return false;  // return true;
});

这个表单提交函数return falsetrue有什么区别?

【问题讨论】:

  • 返回真;是“默认” - 它会继续。如果你把 return false;然后它退出函数并告诉调用者 FALSE 并停止。真的不停止..你看。在这种情况下,没有人使用 return true 。但是使用 return false;例如,如果您希望单击停止其正常行为,则很好。就像在您的提交中一样会发出警报-但在之后停止并且不发送数据..
  • @ppumkin:我不会说return true 是默认值。没有return 语句将返回undefined。更正确的是,如果返回值不是false,则正常处理提交事件。
  • 嗯。是的,这就是为什么我用引号“”说。但根据定义,布尔值只有 2 个状态。所以如果它不是假的,那就是真的。这在调用者结束函数时进行测试。所以如果 undefined 被翻译成 true.. 那么 True 是“默认”值

标签: jquery html jquery-ui javascript


【解决方案1】:

如果从提交事件中返回false,则不会发生正常的页面表单POST。

【讨论】:

    【解决方案2】:

    return false,不要执行表单的默认操作。 return true,执行表单的默认操作。


    这样做也更好

    $('form').submit(function(e) {
      alert($(this).serialize());
      e.preventDefault();
    });
    

    【讨论】:

    • 差不多。你忘了stopPropagation
    【解决方案3】:

    如前所述,返回 false 会阻止事件“冒泡”。如果您想了解完整的详细信息,请查看bind() 的 API 文档:http://api.jquery.com/bind/

    “从处理程序返回 false 等效于在事件对象上调用 .preventDefault() 和 .stopPropagation()。”

    【讨论】:

      【解决方案4】:
      return false;  // cancel submit
      return true;   // continue submit
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 2018-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-14
        相关资源
        最近更新 更多