checkbox的html是<input type="checkbox" id="xx"><label>内容</label>这才是一个完整的checkebox把后面的label也禁用掉应该可以了
我查看源代码每段如下
<td style="white-space:nowrap;"> <input type="checkbox" name="ctl00_ContentPlaceHolder1_treeMenun46CheckBox" id="ctl00_ContentPlaceHolder1_treeMenun46CheckBox" /><span class="ctl00_ContentPlaceHolder1_treeMenu_0" id="ctl00_ContentPlaceHolder1_treeMenut46">按航线查询</span> </td>
JS设置代码
//禁用与角色绑定的菜单权限 function DisabledTreeNodes() { $("#divTreeMenu").find(":checkbox").each(function() { if ($(this).attr("title") != "") { $(this).attr("disabled", true); $(this).attr("checked", true); } else { $(this).attr("disabled", false); // $(this).attr("checked", false); } }); }
@唐小熊: function DisabledTreeNodes() {
$("#divTreeMenu").find(":checkbox").each(function() {
if ($(this).attr("title") != "") {
$(this).attr("disabled", true);
$(this).attr("checked", true);
}
else {
$(this).attr("disabled", false);
$(this).subling('span').attr("disabled", false);//禁用掉checkbox的兄弟span标签看可以吗
}
});
}
@MingHao_Hu:
错误: 对象不支持此属性或方法
@唐小熊: 不好意思写错了siblings() 这个不过要引入jquery相应的js文件啊
@MingHao_Hu::-) 没事,现在不报错了 但是点击文字部分还是可以操作checkbox = = 也不晓得怎么回事
<table cellpadding="0" cellspacing="0" style="border-width:0;"> <tr> <td><a id="ctl00_ContentPlaceHolder1_treeMenun54" href="javascript:TreeView_ToggleNode(ctl00_ContentPlaceHolder1_treeMenu_Data,54,ctl00_ContentPlaceHolder1_treeMenun54,' ',ctl00_ContentPlaceHolder1_treeMenun54Nodes)"><img src="/WebResource.axd?d=Ra1Nq2qXHrm6FvxUuxgzaC_PMT9TM3qORCnfTisbg24BZnwsi2lDUOXB9V46dp0KC-e2DY6GcHbEEZ8mN9Dn1kJGLY6MAXLwlCeeUpvQfNv8ErLK0&t=634751731141718750" alt="折叠 灵活报表" style="border-width:0;" /></a></td><td style="white-space:nowrap;"><input type="checkbox" name="ctl00_ContentPlaceHolder1_treeMenun54CheckBox" id="ctl00_ContentPlaceHolder1_treeMenun54CheckBox" checked="checked" title="灵活报表530" /><span class="ctl00_ContentPlaceHolder1_treeMenu_0" title="灵活报表530" id="ctl00_ContentPlaceHolder1_treeMenut54">灵活报表</span></td> </tr> </table><div id="ctl00_ContentPlaceHolder1_treeMenun54Nodes" style="display:block;"> <table cellpadding="0" cellspacing="0" style="border-width:0;"> <tr> <td><div style="width:20px;height:1px"></div></td><td><img src="/WebResource.axd?d=cPINOqQ3LWtIigIHwjpe5eLDgqgOyYk-ASEF3WxCfOJuUuBpUyISuozB0ZkGpatEl1TQgLGwKKKkiJRhVWE_8SL1HMbisscJvUrwr_ZbzRkYxswy0&t=634751731141718750" alt="" /></td><td style="white-space:nowrap;"><input type="checkbox" name="ctl00_ContentPlaceHolder1_treeMenun55CheckBox" id="ctl00_ContentPlaceHolder1_treeMenun55CheckBox" checked="checked" title="灵活报表530" /><span class="ctl00_ContentPlaceHolder1_treeMenu_0" title="灵活报表530" id="ctl00_ContentPlaceHolder1_treeMenut55">灵活报表</span></td> </tr> </table><table cellpadding="0" cellspacing="0" style="border-width:0;"> <tr> <td><div style="width:20px;height:1px"></div></td><td><img src="/WebResource.axd?d=cPINOqQ3LWtIigIHwjpe5eLDgqgOyYk-ASEF3WxCfOJuUuBpUyISuozB0ZkGpatEl1TQgLGwKKKkiJRhVWE_8SL1HMbisscJvUrwr_ZbzRkYxswy0&t=634751731141718750" alt="" /></td><td style="white-space:nowrap;"><input type="checkbox" name="ctl00_ContentPlaceHolder1_treeMenun56CheckBox" id="ctl00_ContentPlaceHolder1_treeMenun56CheckBox" checked="checked" title="灵活报表530" /><span class="ctl00_ContentPlaceHolder1_treeMenu_0" title="灵活报表530" id="ctl00_ContentPlaceHolder1_treeMenut56">Analyzer管理</span></td> </tr> </table><table cellpadding="0" cellspacing="0" style="border-width:0;"> <tr> <td><div style="width:20px;height:1px"></div></td><td><img src="/WebResource.axd?d=cPINOqQ3LWtIigIHwjpe5eLDgqgOyYk-ASEF3WxCfOJuUuBpUyISuozB0ZkGpatEl1TQgLGwKKKkiJRhVWE_8SL1HMbisscJvUrwr_ZbzRkYxswy0&t=634751731141718750" alt="" /></td><td style="white-space:nowrap;"><input type="checkbox" name="ctl00_ContentPlaceHolder1_treeMenun57CheckBox" id="ctl00_ContentPlaceHolder1_treeMenun57CheckBox" checked="checked" title="灵活报表530" /><span class="ctl00_ContentPlaceHolder1_treeMenu_0" title="灵活报表530" id="ctl00_ContentPlaceHolder1_treeMenut57">文件夹分配</span></td> </tr> </table> </div>
这是整个完整的报表节点
@MingHao_Hu:
@唐小熊: 把生成的Html给我,我看下
@MingHao_Hu: 你看看上面这个行么
@唐小熊: $(function () {
$('input:checkbox').attr('disabled', 'disabled');
});这样去禁用我这里测的是可以禁用的
@MingHao_Hu: 是TreeView的checkbox么,点击文字也被禁用了?
@唐小熊: 是的同时文字也禁用了
@MingHao_Hu: 可我这边还是不行= =.......
@唐小熊: 你用什么浏览器Jquery 什么版本啊!我在IE上,jquery1.7的版本
@MingHao_Hu: v1.4.2 IE8
@唐小熊: 调试下看this是什么东西,看他的一些属性值'disabled'的值是什么
@MingHao_Hu:
function testClick(e) { if (window.event) e = window.event; var evt = e.srcElement ? e.srcElement : e.target; if (evt.previousSibling && evt.previousSibling.tagName == "INPUT" && evt.previousSibling.type == "checkbox") { if(!evt.previousSibling.disabled){ evt.previousSibling.checked = evt.previousSibling.checked ? false : true; } var childrenDivID = evt.previousSibling.id.replace('CheckBox', 'Nodes'); var div = document.getElementById(childrenDivID); if (div == null) return; var checkBoxs = div.getElementsByTagName('INPUT'); for (var i = 0; i < checkBoxs.length; i++) { if (checkBoxs[i].type == 'checkbox') { if(!evt.previousSibling.disabled){ checkBoxs[i].checked = evt.previousSibling.checked; } } } } }
谢谢你啊,真凶其实是它➹。判断只读是后加的。
点击文字应该会触发一个事件:selected(具体的不清楚,大致是这个吧),如果你的checkbox是绑定到这个item的selected状态的话。。。
你要知道,checkbox设置为readonly(好像是disabled)只是限制我们的UI输入,而不会限制我们在代码层次对这个进行改动。
你可以把checkbox的checked不要绑定到item的selected状态,而是绑定到另外的一个值。
是Enable,checkbox本身找不到事件,TreeView的点击事件也指在点击checkbox时才触发。
把checkbox的checked不要绑定到item的selected状态,而是绑定到另外的一个值。是在哪设置呢?
@唐小熊: 我几乎没用过这个,所以就没办法具体指出来了,设置方式应该在文档里有类似的说明,就象你设置绑定一样。
@笨笨蜗牛: 谢谢啊,最终找出来是JS的问题。