2010-08-02 56 views
3

下面是我的代碼:表單提交如何從複選框元素獲取默認值?

<INPUT TYPE="checkbox" NAME="cb" value="1"> 

後,我得到cb==1,如果cb元素被選中,

我想cb==0,如果未選中cb元素。如何實現它?

BTW:不能改變接收頁面,如:

if(cb==null)cb=0;// no no no.. 

我想在Web前端客戶端實現它。

我想是這樣的:

<INPUT TYPE="hidden" NAME="cb" value="0"> <!--add this line--> 
<INPUT TYPE="checkbox" NAME="cb" value="1"> 

如果cb沒有被選中,就可以覆蓋<INPUT TYPE="hidden" NAME="cb" value="0">,我還能得到cb==0

但我覺得這個解決方案不好。

有什麼想法嗎? THX〜:)


感謝wowo_999發表評論:

「我只是忽略複選框期的價值,並用它來設置你的隱藏字段的基礎值上如果選中或不。如果複選框被選中,你建議的方式會在查詢字符串中發送cb 2x的值。「 - wowo_999


在數據庫中,我設置CB字段默認值設爲「0」,但是當我插入或更新,如果是零,表示:「值java.sql.SQLException:列‘CB’不能(我不能忽略cb字段在sql查詢字符串中,因爲我可能需要更新cb爲「0」。)

+2

如果未選中複選框,則Web瀏覽器不會發送任何值。 ASP.NET在內部使用具有相同名稱技巧的隱藏元素將其默認值發送給複選框。 – Powerlord 2010-08-02 18:41:21

+0

我看,任何想法比我的解決方案更好? – Koerr 2010-08-02 18:43:51

+0

我只是忽略了複選框週期的值,並根據它是否被選中來使用它來設置隱藏字段的值。 如果選中該複選框,您建議的方式將在您的查詢字符串中發送cb 2x的值。 – 2010-08-02 19:19:03

回答

1

如果您打算使用複選框的值來設置隱藏輸入的值,則不妨使用javascript來設置複選框的值。例如使用jQuery:

$("input[type=checkbox]").change(function() { 
    $(this).attr("value", $(this).attr("checked") ? 1 : 0); 
}); 

或者,讓腳本設置在頁面加載的價值,以及:

$(function() { 
    function updateCheckbox() { 
     $(this).attr("value", $(this).attr("checked") ? 1 : 0); 
    } 
    // Run whenever checkbox is ticked or unticked 
    $("input[type=checkbox]").change(updateCheckbox); 
    // Run on page load 
    updateCheckbox(); 
}); 

現在你可以使用普通的HTML標記過,沒有任何隱藏的輸入和沒有價值屬性:

<input type="checkbox" name="cb" /> 

還是有它默認選中:

<input type="checkbox" name="cb" checked /> 
0

您不能默認在數據庫爲「0」?

+0

是的,我設置'cb'字段默認值爲「0」,但是當我插入或更新,如果它爲空,顯示:「java.sql.SQLException:列'cb'不能爲空「,所以,我需要cb == 0,而不是null。(我不能忽略sql中的cb字段,因爲我可能需要更新'cb'到」0「。) – Koerr 2010-08-02 19:41:02

1

您可以使用JavaScript來檢查它是否未選中,並將值更改爲0,並將其設置爲在檢查時進行提交。