往往有这样的场景,两个checkbox,当checkbox1选中的情况下checkbox2的才可用,checkbox2的这个“可用”在服务端的代码为checkbox2.Enabled=true,而在生成的html代码中为checkbox2.disabled=false。
昨天的工作中我就遇到这样的怪事,安全起见,checkbox2的“不可用”状态是我在后台这样子
checkbox2.Attributes.Add(”disabled”, “true”)
前台的js代码大致如下
if(checkbox1.checked==true)
{
checkbox2.disabled=false;
}
else
{
checkbox2.disabled=true;
}
结果我发现我的js代码不起作用,但是并没有页面提示说我的js代码错误,这就奇怪了,为什么正确的代码却不起作用呢,凭经验,马上查看页面源文件,我发现,等我设置了checkbox2.Attributes.Add(”disabled”, “true”)后,生成的checkbox2的html代码大概是这样的<span disabled=”true”><input type=checkbox…..<lable for=”checkbox2″ /></span>哦,这样一下子都明白了,和着它把checkbox外面套了一层<span>啊,而且这个<span>没有ID,好了,明白了原因后就好处理了,解决方法是: