2010-03-17 56 views
4

我已經在某些情況下可能會被禁用複選框的選中,並檢查使用JavaScript,即:在javascript禁用複選框,並承認它在服務器端

var cbTest = document.getElementById("CheckBoxTest"); 
cbTest.disabled = true; 
cbTest.checked = true; 

然而,發送回發時,CheckBoxTest.Checked在服務器端是錯誤的。

是否可以禁用複選框並仍然讓服務器端將其識別爲已檢查?

回答

7

表單中的任何禁用控件都不會在回發後提交給服務器。您可以添加隱藏的輸入控件,並將複選框狀態置於該輸入和服務器端,檢查隱藏的輸入值。

+0

我想用一個隱藏字段,但希望有一個更好的辦法。顯然這是最好的辦法。謝謝。 – Kuzco 2010-03-17 14:45:55

1

要獲得禁用的字段值,您必須在回發之前啓用它。禁用字段的值不會發送。

0

我認爲HTML表單只會發佈啓用控件的值。我想一個解決方法是有一個隱藏字段(<input type="hidden"/>),並在這裏存儲CheckBox的Checked狀態。

1

您可以啓用帖子前面的複選框,也可以設置一個隱藏字段來保存已選狀態的值。禁用的控件不會發布其值。

0

你有沒有試圖讓屬性像

string val = checkbox.Attributes["checked"].ToString(); 
+0

我現在檢查了它,屬性爲空。 – Kuzco 2010-03-17 14:46:52

相關問題