<div id="esealSubRight_cbx"> <p> <label >签章管理:</label> <input id="subRightWhiteList1" name="subRightWhiteList" type="checkbox" value="14-01-01-00-00-00-00-00-00-00-00" checked="checked">公章管理</input>  <input id="subRightWhiteList2" name="subRightWhiteList" type="checkbox" value="14-01-02-00-00-00-00-00-00-00-00" checked="checked">私章管理</input><br> <input id="subRightWhiteList3" name="subRightWhiteList" type="checkbox" value="14-01-03-00-00-00-00-00-00-00-00" checked="checked">签章申请</input>  <input id="subRightWhiteList4" name="subRightWhiteList" type="checkbox" value="14-01-04-00-00-00-00-00-00-00-00" checked="checked">签章制作</input> </p> </div>
发现个问题,如果将disabled属性直接加在<div id="esealSubRight_cbx">上,div中的input框是点不了了,可是后台还能接收到对应的值。
于是将disabled属性加到逐个的input框上去,这样input即点不了,后台也接收不到值了。
如何用js使input框失效?
$("#subRightWhiteList1").attr("disabled","diabled"); (使失效)
$("#subRightWhiteList1").removeAttr("disabled"); (去掉失效)
function timer(){ var rolerights = document.getElementById('right.id').value; if(rolerights.indexOf("14-00-00-00-00-00-00-00-00-00-00") > -1 ){ $("#subRightWhiteList1").removeAttr("disabled"); $("#subRightWhiteList2").removeAttr("disabled"); $("#subRightWhiteList3").removeAttr("disabled"); $("#subRightWhiteList4").removeAttr("disabled"); }else{ $("#subRightWhiteList1").attr("disabled","diabled"); $("#subRightWhiteList2").attr("disabled","diabled"); $("#subRightWhiteList3").attr("disabled","diabled"); $("#subRightWhiteList4").attr("disabled","diabled"); } } var t1 = window.setInterval("timer()",500); function closeInterval(){ window.clearInterval(t1); }
window.setInterval("timer()",500); 此处为一个定时器,每0.5秒执行一次timer()函数。
此处为什么用到定时器?
right.id节点是这样的: <input id="right.id" name="role.rights" type="hidden" />
这个节点的值如果变化的话,我会执行以下其它的操作,刚开始想到用onchange等属性,后来发现它们不能监控js等程序赋值带来的变化,所以就想到使用定时器,每隔0.5秒查看一次这个值,如果有变化,然后做对应的其它操作。