js checkbox

来源:百度知道 编辑:UC知道 时间:2024/06/23 08:11:48
我想判断每组的checkbox是否有被选中,如一个都未选,就提示。
但是循环i(或者j)初始为的 0 的话,每组的checkbox的第一个
必须选中,如为 1 的话,每组的第二个必须选中,否则它一直提示。
怎么回事?

function checksubmit(){

var sumlanguage = 0; //searchcourse::form-name
var language=searchcourse.document.getElementsByName("language");

var sumcoursetype = 0;
var coursetype=searchcourse.document.getElementsByName("coursetype");

function checksubmit(){
for(i=1;i<=language.length;i++){
if(language[i].checked){
sumlanguage=sumlanguage+1;
break;
}
if(sumlanguage==0){
alert("请选择课程语言");
return false;
}
else{return true;}
}

for(j=1;j<=coursetype.length;j++){
if(coursetype[j].checked){
sumcoursetype=sumcoursetype+1;
break;
}
if(sumcoursetype==0){
alert("请选择课件类型");
return false;
}
else{return true;}

先给你我写的代码吧,反正我测试过能满足你的基本需求,不过友好度不太好
针对你说的问题的错误关键是:提示代码alert没有放在for外面
function checksubmit(){
var result=true;
var sumlanguage=0; //searchcourse::form-name
var language=document.getElementsByName("language");
var sumcoursetype=0;
var coursetype=document.getElementsByName("coursetype");
for(i=0;i<language.length;i++){
if(language[i].checked)
sumlanguage++;
}
if(sumlanguage==0){ //把这里的if弄到FOR外面,就不会出现你说的必须选的问题,原因你读读自己的程序就知道
alert("请选择课程语言");
result=false;
}
for(j=0;j<coursetype.length;j++){
if(coursetype[j].checked)
sumcoursetype++;
}
if(sumcoursetype==0){
alert("请选择课件类型");
result=false;
}
return result;
}

checkbox默认选中一个就行了