使用JavaScript验证表单不起作用

使用JavaScript验证表单不起作用,javascript,Javascript,我有以下代码: function validate(form) { var errors = 0; els = form.elements; for (var i=0; i<form.elements.length; i++) { if (!els[i].value && els[i].tagName != "select") { console.log(els[i]); els[i].

我有以下代码:

function validate(form) {
    var errors = 0;
    els = form.elements;
    for (var i=0; i<form.elements.length; i++) {
        if (!els[i].value && els[i].tagName != "select") {
            console.log(els[i]);
            els[i].style.border = "1px solid red";
            errors = 1;
        }
    }
    console.log("Finished for loop");
    var skuld_fast = document.getElementsByName("skuld_fast")[0];
    var skuld_other = document.getElementsByName("skuld_other")[0];
    if ((skuld_fast.value && !skuld_other.value) || (!skuld_fast.value && skuld_other.value)) {
        skuld_fast.style.border = "1px solid red";
        skuld_other.style.border = "1px solid red";
        errors = 1;
    }
    console.log("Finished if statement for skuld_fast and skuld_other");
    if (errors == 0) {
        form.submit();
    }
    else {
        alert("Eitthvað fór úrskeiðis.");
    }
}
函数验证(表单){
var误差=0;
els=形式元素;

for(var i=0;iA select字段将始终在加载页面时选择一个选项,因此
skuld_other
skuld_fast
的值永远不会为false,除非Javascript将其设置为“”。哦,我明白了。我必须测试该选项是否为“”或者类似的东西。但是它仍然在选择元素周围绘制红色边框,即使我注释掉了处理它们的if语句。出于某种原因,它们仍然通过for循环。如果注释掉了处理它们的if语句,这不意味着无论发生什么情况都会绘制红色边框吗?你到底画了什么线是否注释掉了if语句本身或整个块(包括
skuld\u fast.style.border=“1px solid red”;
)吗?
<form>
    <input name="input1">
    <select name="skuld_other">
        (...)
    </select>
    <select name="skuld_fast">
        (...)
    </select>
    <input type="button" onClick="validate(this.form);">
</form>