2011-05-12 133 views
8
$('form').submit(function() { 
    alert($(this).serialize()); 
    return false; // return true; 
}); 

返回falsetrue之間的表單提交功能有什麼區別?這裏返回true或false的區別是什麼?

+0

return true;是「默認」 - 它會繼續。如果你把回報假;然後它退出函數並告訴調用者FALSE並停止。真的不停止..你看。在這種情況下沒有人使用返回true。但是使用return false;例如,如果您想要點擊來停止執行正常行爲,那麼這很好。就像在你的提交會做警報 - 但停止後,不發送數據.. – ppumkin 2011-05-12 13:00:35

+2

@ppumkin:我不會說'返回true'是默認值。沒有'return'語句會返回'undefined'。更正確的是,如果返回值不是「false」,則提交事件正常處理。 – 2011-05-12 13:16:15

+0

嗯。這就是爲什麼我說在引號「」。但根據定義,布爾值只有2個狀態。所以如果它不是虛假的話。當函數由調用者結束時,這將被測試。所以如果undefined被翻譯爲true ..那麼True就是「默認」值 – ppumkin 2011-05-12 13:18:48

回答

8

如果您從提交事件返回false,則不會發生普通頁面表單POST。

3

return false,不要執行窗體的默認操作。 return true,執行窗體的默認操作。


這也是好做

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

差不多。你忘了'stopPropagation'。 – 2011-05-12 13:10:56

1
return false; // cancel submit 
return true; // continue submit 
2

如前所述,返回false停止從 「冒泡」 的事件。如果您想了解詳細信息,請查看bind()的API文檔:http://api.jquery.com/bind/

「從處理程序返回false等同於在事件對象上調用.preventDefault()和.stopPropagation()。」

相關問題