2012-02-07 73 views
20

嗨我有一個html表單,我通過點擊事件按鈕提交。事件觸發$(「#myform」)。submit(); 問題是,在窗體上有一個複選框,並在發佈的參數下顯示「mycheckbox1」,而不是預期的「mycheckbox1真」下的螢火蟲。表單提交複選框將值設置爲「on」而非「true」

當通過ajax提交表單我可以設置發佈的數據沒有問題,但此表單有一個文件上傳需要各種黑客之一,使其工作。我正在使用的那個最終調用提交。但也許這不相關。

在任何情況下,當數據到達服務器時,服務器看不到值「on」作爲布爾值,因此忽略它。

任何有識之士將不勝感激。

+2

不復選框有什麼價值?如果它沒有'value'屬性,它只能報告'開'。 – 2012-02-08 00:00:28

+0

是的,我讀過這個,但奇怪的是,當我看着一個與螢火蟲複選框,我檢查並取消選中它不顯示一個值。也許我需要在複選框被創建時將該值設置爲false,或者我需要一個全局onChange事件處理程序來手動設置值。 – Raif 2012-02-08 13:54:17

回答

17

選中的複選框只是發送其value屬性。未經檢查的複選框不會將自身發送到表單中。

因此,如果發佈複選框的name屬性,則可以確定是否進行了檢查。

+0

不知道未經檢查的複選框未在POST中發送......一直試圖找出超過半小時的類似問題! +1 – 2014-10-22 06:26:57

6

是的,不同的瀏覽器可能會在未設置值時處理複選框。

您可以將複選框的value屬性顯式設置爲「true」,因爲您的服務器在選中複選框並將其發送給它時理解它。正如Alex在他的回答中暗示的那樣,如果複選框未被選中,該複選框將不會被髮送,所以我假設在這種情況下服務器將默認爲false。

+0

我在Play中遇到類似問題,直到我明確將「value =」true「'添加到我的複選框。 – Matthew 2016-04-25 13:42:57

相關問題