簡體   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