繁体   English   中英

“返回错误;” 表单提交不起作用

[英]"return false;" for form submission is not working

“返回错误;” 表单提交适用于我的代码的 rest,只是不适用于此部分。 任何想法为什么?

function checkForm() {
    $("select[name*=lic_company]").each(function() {
        if($(this).val() != '') {
            var i1 = $(this).parent("td").next("td").children("select");
            var i2 = i1.parent("td").next("td").children("input");
            var i3 = i2.parent("td").next("td").children("input");
            if(i1.val() == '') {
                i1.parent("td").addClass("formErrorTD");
                i1.addClass("formError");
                alert("You must enter a state for this license");
                return false;
            }
            if(i2.val() == '') {
                i2.parent("td").addClass("formErrorTD");
                i2.addClass("formError");
                alert("You must enter an expiration date for this license");
                return false;
            }
            if(i3.val() == '') {
                i3.parent("td").addClass("formErrorTD");
                i3.addClass("formError");
                alert("You must enter a license number for this license");
                return false;
            }
        }
    });
}

它被调用

$("#addAgentForm").submit(checkForm);

您正在调用return false; 在一个传递给.each的参数的闭包中。 因此, .each正在捕获return false; . 要解决此问题,您需要有一个 boolean 标志,其中包含以下形式的 state:

function checkForm() {
    var okay = true;

    $("select[name*=lic_company]").each(function() {
    ...
        return okay = false;
    ...
    });

    return okay;
}

一切都会好起来的。

您的return false语句位于传递给.each()的匿名 function 中,因此仅返回该 function 的值,而不是对checkForm()的整个调用。

如果我不得不猜测,那是因为您从传递给每个调用的 function 返回,这意味着您真正做的就是退出每个 function,而您的主要验证 function 顺利完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM