var theRadioInputs = document.getElementsByName('answer');
for(let m=0;m<theRadioInputs.length;m++)
{
if(theRadioInputs[m].checked){
alert('has been checked');
return true;
}else{
alert('您还没有选中其中的一项');
return false;
}
}
b你这块的逻辑不对,应该先遍历判断是否有选中的,用个临时变量做标识。遍历结束后,判断临时变量的值,根据临时变量的值来判断是否都没选中。
var theRadioInputs = document.getElementsByName('answer');
var flag=false;
for(let m=0;m<theRadioInputs.length;m++){
if(theRadioInputs[m].checked){
flag=true;
break;
}
}
if(flag){
alert('has been checked');
return true;
} else{
alert('您还没有选中其中的一项');
return false;
}
在判断一组单选或多选是否有选中项,不应该像你这样在循环内判断
应该是在循环外定义一个变量,表示选中或选中项数量
例如
let selectedItems = 0;
for(let m=0;m<theRadioInputs.length;m++)
{
if(theRadioInputs[m].checked){
selectedItems ++;
//alert('has been checked');
//return true;
// }else{
//alert('您还没有选中其中的一项');
//return false;
}
}
if (selectedItems > 0){
alert('has been checked');
return true;
}else{
alert('您还没有选中其中的一项');
return false;
}
说明theRadioInputs[m].checked没有等于true的,说明checkbox选中事件赋值问题。
可是我都选择了,然后提交的
你可以打印一下每个循环元素,判断是否选中,应该是有没有checked属性或者checked属性是否为true
从来没有 很少的时候 有些时候 经常这样 总是这样