我已經在某些情況下可能會被禁用複選框的選中,並檢查使用JavaScript,即:在javascript禁用複選框,並承認它在服務器端
var cbTest = document.getElementById("CheckBoxTest");
cbTest.disabled = true;
cbTest.checked = true;
然而,發送回發時,CheckBoxTest.Checked
在服務器端是錯誤的。
是否可以禁用複選框並仍然讓服務器端將其識別爲已檢查?
我已經在某些情況下可能會被禁用複選框的選中,並檢查使用JavaScript,即:在javascript禁用複選框,並承認它在服務器端
var cbTest = document.getElementById("CheckBoxTest");
cbTest.disabled = true;
cbTest.checked = true;
然而,發送回發時,CheckBoxTest.Checked
在服務器端是錯誤的。
是否可以禁用複選框並仍然讓服務器端將其識別爲已檢查?
表單中的任何禁用控件都不會在回發後提交給服務器。您可以添加隱藏的輸入控件,並將複選框狀態置於該輸入和服務器端,檢查隱藏的輸入值。
要獲得禁用的字段值,您必須在回發之前啓用它。禁用字段的值不會發送。
我認爲HTML表單只會發佈啓用控件的值。我想一個解決方法是有一個隱藏字段(<input type="hidden"/>
),並在這裏存儲CheckBox的Checked狀態。
您可以啓用帖子前面的複選框,也可以設置一個隱藏字段來保存已選狀態的值。禁用的控件不會發布其值。
你有沒有試圖讓屬性像
string val = checkbox.Attributes["checked"].ToString();
我現在檢查了它,屬性爲空。 – Kuzco 2010-03-17 14:46:52
我想用一個隱藏字段,但希望有一個更好的辦法。顯然這是最好的辦法。謝謝。 – Kuzco 2010-03-17 14:45:55