所以我正在使用 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 只是将“只读”的存在视为足以启用它。然后,它处理只读的方式与 IE9 不同。因此,我使用 disabled 而不是 readonly 以及使背景透明的附加 CSS(看起来是 readonly 而不是 disabled)