所以我使用MVC3生成了一个文本区域元素。我使用以下标记生成我的元素:
<%=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 (为了看起来只读而不是禁用)
发布于 2012-12-19 21:13:15
readonly只有一个值,那就是readonly,因此readonly属性的存在足以将其呈现为readonly是有效的。
对于禁用的情况也是如此,只要存在属性就足够了
在JS中,要启用或使控件可编辑,只需删除这些属性,而不是将它们设置为true或false。
https://stackoverflow.com/questions/13943210
复制相似问题