Rumah > Soal Jawab > teks badan
$("#join").submit(function(e){
var f = document.forms[0];
for (var i=0;i<f.elements.length;i++)
{
var ee = f.elements[i];
if (ee.type == "checkbox" && ee.checked)
{
//成功
}
else
{
alert('error');
return false;
}
}
});
我這樣寫無法成功
怎麼樣都是error (至少選擇一項)
想請問是哪裡錯誤?
天蓬老师2017-04-10 17:28:41
如果你是想循环检查所有 checkbox,只要有一项选中就 OK,那么你至少应该在所有循环完了之后才知道是否有找到,而不是在每一个循环里去判断失败。
function check() {
for (...) {
if (somechecked) {
return "OK"
}
}
return "error";
}
如果不单独写 fucntion 一般会这么写
var found = false;
for (....) {
if (somechecked) {
found = true;
break;
}
}
if (found) {
alert("ok");
} else {
alert("error");
}
大家讲道理2017-04-10 17:28:41
你的方法是没错的,可是还差一点就是在判断有选中执行完选中的代码后要跳出循环!!!否则它会继续执行for循环所以会弹出error
if (ee.type == "checkbox" && ee.checked)
{
//成功
return;//跳出循环
}
demo