js中三目运算及readonly的解决办法
我的一个需求,判断一个资产的代码,如果没有代码,可以编辑,如果有,只读。
首先判断资产的有无:@Model.AssetCode==null,结果@Model.AssetCode为空的时候语法错误,最后想了个办法,取长度判断@Model.AssetCode.Length==0
@{ bool isAssertCodeNull=@Model.AssetCode.Length==0?false:true;}
然后传值到html中
<input id="AssetCode" value="@Model.AssetCode" readonly=@isAssertCodeNull />
但当AssetCode为空的时候还是不能编辑。用来,只要 input 有readdonly属性,不管其值是什么,都不可编辑。
最后的解决办法,在js中,判断AssetCode的长度是否为0,是,移除readonly属性,问题解决
if(@Model.AssetCode.Length==0)
{
$('#AssetCode').removeAttr('readonly');
}