当前位置 : 主页 > 网页制作 > Dojo >

dojo的checkbox全选和取值

来源:互联网 收集:自由互联 发布时间:2021-06-15
最近项目需要用dojo,有个应用是有多个checkbox。选中一个一级目录的checkbox,二级所有会选中。 我用以前常用的js全选,(document.getElementById('chkname').checked=true;)发现没用反应。 后来通

最近项目需要用dojo,有个应用是有多个checkbox。选中一个一级目录的checkbox,二级所有会选中。

我用以前常用的js全选,(document.getElementById('chkname').checked=true;)发现没用反应。

后来通过F12查看html,才发现问题。其实已经选中了,只是dojo的checkbox蓝色选中样式没加上去,就是说只能用dojo方式设置checkbox的选择状态。

发现在dojo下,input类型为checkbox的控件无法通过dojo方式绑定click,onchange事件。


 <input type="checkbox" data-dojo-type="dijit/form/CheckBox" id="w01" name="w01" onchange="btnClick('w01',2)"
     value="w01">
     <label for="w01">w01 input/checkbox dijit/form/CheckBox</label>
    
    <input type="checkbox" data-dojo-type="dijit/form/CheckBox" id="w01_0" value="1">
    <input type="checkbox" data-dojo-type="dijit/form/CheckBox" id="w01_1" value="2">
    
    <input type="checkbox" data-dojo-type="dijit/form/CheckBox" id="w02" name="w02" onchange="btnClick('w02',3)"
     value="w01">
     <label for="w01">w01 input/checkbox dijit/form/CheckBox</label>
    
    <input type="checkbox" data-dojo-type="dijit/form/CheckBox" id="w02_0" value="1">
    <input type="checkbox" data-dojo-type="dijit/form/CheckBox" id="w02_1" value="2">
     <input type="checkbox" data-dojo-type="dijit/form/CheckBox" id="w02_1" value="3">
     </br>
     <input type="button" value='show' onclick="showlist('w01',2)"/>
     <label for="w01">sub</label>
	<script type="text/javascript">
        function btnClick(a,size) {
        	for(i=0;i<size;i++)
        		dijit.byId(a+'_'+i).attr('checked',dijit.byId(a).checked);
        }
        
      function showlist(a,size){
    	  s='';
    	  for(i=0;i<size;i++){
      		if(dijit.byId(a+'_'+i).checked){
      			s+=dijit.byId(a+'_'+i).value+',';
      		}
    	  }
    	  alert(s)
      }
    </script>

<select id="typeClass_modify" name="typeClass" data-dojo-type="dijit/form/Select">
<option value="-1" selected="selected">请选择</option>
  <option value="3">3-上层菜单</option>
  <option value="4">4-左侧菜单</option>
  <option value="5">5-页面菜单</option>

</select>


setTimeout(function() { var widget = dijit.byId("typeClass_modify");  if(widget){    widget.attr('value', '${s.getTypeClass()}');  }else{  console.log('lowBalanceCheck null')  } },1000);

网友评论