题目描述限制多选框的选中个数,用一个方法单独写出来,在文本框输入数字选中多选框的某个元素时,到了该限制的时候没有反应。题目来源及自己的思路来源:慕课网JavaScript的一道题目+我自己的一点想法。思路:先判断多选框是否选中,如果已经开始选中就调用限制多选框选中个数的方法,网上说要设置点击多选框触发方法,然后在该方法中将checked设置为false,但是文本框控制多选框不需要点击多选框,所有不能触发该方法,多选框用onclick方法将设置多选框的checked=false后,多选框元素还是被选中了,查了好多资料都没有解决。相关代码
functioncheckall(){//全选varhobby=document.getElementsByTagName("input");for(vari=0;iif(hobby[i].type=="checkbox"){ hobby[i].checked=true;}}}functionclearall(){//全不选varhobby=document.getElementsByName("hobby");for(vari=0;iif(hobby[i].checked==true){ hobby[i].checked=false;}}}functioncheckone(){//选一个varnum=0;varj=document.getElementById("wb").value;varhobby=document.getElementsByName("hobby");if(j<=0||j>6){alert("请输入正确的数字!");}else{hobby[j-1].checked=true;}for(vari=0;iif(hobby[i].checked==true){ autoCheck("hobby",3);}}}//限制单个选中的最大个数functionautoCheck(name,limit){varhobby=document.getElementsByName(name);functioncheck(){varnum=0;for(vari=0;i{ if(hobby[i].checked){num++}if(num>limit){returnfalse;}}returntrue;}functioncheckedNum(){for(vari=0;iif(!check()){ alert("只能选择"+limit+"项哦!");hobby[i].checked=false;}}}}你期待的结果是什么?实际看到的错误信息又是什么?期待:无论是点击多选框还是在文本框中输入数字控制多选框,到了限制条件时都无法再选中。错误:文本框输入数字控制多选框无法触发限制多选框的方法,与多选框被点击时触发方法无法达到一致。
函数式编程
相关分类