如何有条件地指定HTML输入是禁用/只读还是不是?
问题描述:
这里是我想要达到一个样本:如何有条件地指定HTML输入是禁用/只读还是不是?
@Html.EditorFor(m => m.Description,
new { htmlAttributes =
new
{
@class = "form-control",
@readonly = Model.IsReadOnly,
disabled = Model.IsDisabled
}
})
的问题是,该浏览器将在readonly
和disabled
令牌的存在而不检查其内容,所以当IsReadOnly
和IsDisabled
属性false
,它仍然会显示为disabled
。
有没有简单的解决方案呢?
答
HTML: -
@Html.EditorFor(m => m.Description,
new { htmlAttributes =
new
{
@class = "form-control"
}
});
尝试使用jQuery,如下所示: -
if(@Json.Encode(Model.IsReadOnly))
{
$('#Description').attr('readonly','readonly')
}
if(@Json.Encode(Model.IsDisabled))
{
$('#Description').attr('disabled','disabled')
}
也许你应该写[您自己的扩展(http://stackoverflow.com/questions/6660146/set -disable-attribute-based-on-a-condition-for-html-textboxfor)。 – 2015-03-25 05:01:47
您需要测试每个条件 - 例如'@ Html.EditorFor(m => m.Description,Model.IsDisabled?(object)new {disabled =“disabled”}:(object)new {})' – 2015-03-25 05:10:54
@StephenMuecke迄今为止最方便的答案。为什么不写一个正确的答案? – Shimmy 2015-03-25 05:13:20