在文本框输入固定数字时,选中多选框的某个元素,限制多选框的选中个数为什么没有效果?

题目描述
限制多选框的选中个数,用一个方法单独写出来,在文本框输入数字选中多选框的某个元素时,到了该限制的时候没有反应。
题目来源及自己的思路
来源:慕课网JavaScript的一道题目+我自己的一点想法。思路:先判断多选框是否选中,如果已经开始选中就调用限制多选框选中个数的方法,网上说要设置点击多选框触发方法,然后在该方法中将checked设置为false,但是文本框控制多选框不需要点击多选框,所有不能触发该方法,多选框用onclick方法将设置多选框的checked=false后,多选框元素还是被选中了,查了好多资料都没有解决。
相关代码
请选择你爱好:
音乐
登山
游泳
阅读
打球
跑步

请输入您要选择爱好的序号,序号为1-6:

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;
}
}
}
}
你期待的结果是什么?实际看到的错误信息又是什么?
期待:无论是点击多选框还是在文本框中输入数字控制多选框,到了限制条件时都无法再选中。错误:文本框输入数字控制多选框无法触发限制多选框的方法,与多选框被点击时触发方法无法达到一致。
泛舟湖上清波郎朗
浏览 520回答 2
2回答

函数式编程

在你原来的基础上改了一点点请选择你爱好:音乐登山游泳阅读打球跑步请输入您要选择爱好的序号,序号为1-6:functioncheckall(){//全选varhobby=document.getElementsByTagName("input");for(vari=0;i
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript