0

我希望我while能遍历表单中除一个元素之外的所有元素。这是我的代码:

while (i < elnum && !empty) {
        if (form.elements[i].value == "" && form.elements[i] != form.referral) {
            error.innerHTML += 'All fields are required.</br>';
            empty = true;
        }
        i++;
    }

elnum元素的数量在哪里。

不幸的是,即使我只form.referral留空,它仍然会进入if. 基本上,我希望对除该字段之外的所有字段进行检查。

4

1 回答 1

2

与其尝试比较元素,不如尝试以下方法:

if( form.elements[i].name == "referral") continue;

将它放在循环中,在检查空值的条件之前。

话虽这么说,做这样的事情可能会更好:

while(i < elnum) {
    if( form.elements[i].hasAttribute("required") && form.elements[i].value == "") {
        error.innerHTML += "All fields are required.<br />";
        // re-add `empty=true` if the variable is needed elsewhere
        // if it's only used to end the loop, then this is better:
        break;
    }
    i++;
}

并确保将required属性添加到所有必填字段。这是一个更好的解决方案,因为这样它将利用浏览器的原生能力来处理 HTML5 表单(如果有的话)。

于 2013-04-22T21:29:51.820 回答