为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

泛舟湖上清波郎朗 2019-05-13 12:27:35
题目描述限制多选框的选中个数,用一个方法单独写出来,在文本框输入数字选中多选框的某个元素时,到了该限制的时候没有反应。题目来源及自己的思路来源:慕课网JavaScript的一道题目+我自己的一点想法。思路:先判断多选框是否选中,如果已经开始选中就调用限制多选框选中个数的方法,网上说要设置点击多选框触发方法,然后在该方法中将checked设置为false,但是文本框控制多选框不需要点击多选框,所有不能触发该方法,多选框用onclick方法将设置多选框的checked=false后,多选框元素还是被选中了,查了好多资料都没有解决。相关代码请选择你爱好:音乐登山游泳阅读打球跑步请输入您要选择爱好的序号,序号为1-6:functioncheckall(){//全选varhobby=document.getElementsByTagName("input");for(vari=0;i
查看完整描述

2 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

在你原来的基础上改了一点点
请选择你爱好:

音乐
登山
游泳
阅读
打球
跑步

请输入您要选择爱好的序号,序号为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(){
//选一个
varj=document.getElementById("wb").value;
varhobby=document.getElementsByName('hobby');
if(j<=0||j>6){
alert("请输入正确的数字!");
}else
if(autoCheck("hobby",3,'checkone')){
hobby[j-1].checked=true;
}
}
//输入时限制单个选中的最大个数
functionautoCheck(name,limit,type){
varhobby=document.getElementsByName(name);
if(type=='checkone'){
varnum=1;
}else{
varnum=0;
}
for(vari=0;iif(hobby[i].checked){
num++
}
}
console.log(num)
if(num<=limit){
returntrue;
}else{
alert('超限了亲')
returnfalse;
}
}
//直接选择时限制单个选中的最大个数
functionsigleCheck(){
varhobby=document.getElementsByName('hobby');
if(autoCheck("hobby",3)){
for(vari=0;ihobby[i].onclick=function(e){
if(autoCheck("hobby",3,'sigleCheck')){
e.target.checked=true;
}else{
e.target.checked=false;
}
}
}
}
}
sigleCheck()
                            
查看完整回答
反对 回复 2019-05-13
  • 2 回答
  • 0 关注
  • 519 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信