我們有幾個MVC複選框,如:設置MVC複選框爲只讀(或禁用)客戶端
@Html.CheckBoxFor(model => model.hasData, …)
我們有需要來設置所有控件在一個div爲只讀有條件的客戶端代碼(其中包括這些複選框):
if (someCondition) {
$('#' + divIdToDisable + ' input').attr('readonly', 'true');
}
我們瞭解到,readonly在複選框上無法正常工作(請參見下文)。
我試過以下,但不會導致數據被調回時的「保存」(見下文也):
$('#' + divIdToDisable + ' input').attr('disabled', 'true');
這似乎是一個常見的問題,然而在我所有的研究我還沒找到好的客戶端解決方案。
這裏是我的研究:
只讀的複選框不會在所有瀏覽器始終工作:
Can HTML checkboxes be set to readonly?
How can I make a checkbox readonly? not disabled?
使用 '禁用' 與MVC結果沒有價值回報:
Html.CheckBox returns false if disabled, even if seleced
http://davecallan.com/posting-disabled-checkboxes-mvc-razor-views/
這是可以實現有條件的「禁用」 在剃刀代碼:
MVC 3: Conditionally Adding the Disabled Attribute with the HtmlHelpers
但是這些都不是客戶端解決方案。
你爲什麼要使用這個客戶端?爲什麼不在服務器端? – Arendax
複選框沒有按照您想要的方式工作。您是否可以使用單選按鈕? –
@Arendsen:有很多現有代碼需要更改 – RunzWitScissors