所以我使用MVC3生成了一个textarea元素我使用以下标记生成元素:
<%=Html.TextAreaFor(model=> model.Description, new { value=Model.Description, @class="readonlyDescription", placeholder = "No " + Model.DescriptionLabel.ToLower() + " provided", @readonly = "readonly", rows = 1, cols = 30}) %>
在Google Chrome下生成时,我看到:
<textarea class="readonlyDescription" cols="30" id="Description" name="Description" placeholder="No description provided" readonly="readonly" rows="1" value=""></textarea>
在IE9下生成时,我看到:
<textarea name="Description" class="readonlyDescription" id="Description" rows="1" cols="30" readOnly="readonly" value="" placeholder="No description provided">
在IE8下生成时,我看到:
<textarea name="Description" class="readonlyDescription placeholder" id="Description" rows="1" cols="30" readOnly="" value="" placeholder="No description provided" jQuery172027049094255782585="250">
注意,我的readonly属性已丢失。它去哪儿了?
我也尝试过使用@readonly=“true”,但没有看到任何不同的效果。
编辑:我怀疑它正在出现,但是IE8只是处理“只读”的存在,使它能够被激活。然后,它处理readonly的方式与IE9不同。因此,我使用disabled而不是readonly,并附加了使背景透明的CSS(至于看起来是readonly而不是disabled)
最佳答案
readonly只有一个值,即readonly,因此readonly属性的存在足以将其呈现为readonly是有效的。
同样对于残疾人来说,只要存在该属性就足够了
在JS中,要启用或使控件可编辑,可以删除这些属性,而不是将它们设置为true或false。
W3Schools has some to say on it
关于asp.net-mvc-3 - MVC3-@ readonly =“readonly”不会在IE8的textareafor上通过。在其他浏览器上工作正常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13943210/