0

以下に示すjquery検証では、複数の検証エラーが発生した場合、アラートに一度に1つの検証を表示する複数の検証ではなく、すべての検証を一度にアラートに表示する必要があります。すべてのメッセージを1つのアラートに表示するにはどうすればよいですか?

    function validation() {

    var alertValidation = "";
    var _qid = "";
    var _msg = "";

    $("input[data-type='qmark']").each(function(i) {
        var questions = $(this).attr("data-qnum");
        var marks = parseInt($("[class*=q" + i + "_ans_text]").text());
        var txtinput = $(this).val();
        _qid = questions;
        _msg = "You have errors on Question Number: " + _qid + "\n";


        if (txtinput == '') {
            alertValidation += "\n\u2022 You have not entered in a value in all the Indivdiaul Marks textbox\n";
        }


        if (marks < '0') {

            alertValidation += "Your Total Marks Remaining does not equal 0 \n\n\u2022 You Need To Remove " + Math.abs(marks) + " Marks";
        }

        if (marks > '0') {

            alertValidation += "Your Total Marks Remaining does not equal 0 \n\n\u2022 You Have " + marks + " Marks Remaining";
        }

        if (alertValidation != "") {
            return false; //Stop the each loop 
        }

    });


    if (alertValidation != "") {
        alert(_msg + alertValidation);
        return false;
    }

    return true;
}​
4

2 に答える 2

0

このコードブロックを削除する

if (alertValidation != "") {
    return false; //Stop the each loop 
}

すでにエラーメッセージを連結しています。上記のコード行は、エラーが発生するとループを中断します。したがって、これを削除すると問題が解決するはずです。

于 2012-12-17T19:27:17.497 に答える
-1

アラートの検証ごとに、異なる名前を付けます。

if (txtinput == '') {
     alertValidation1 += 'blah blah'
}
if (marks > '0') {
     alertValidation2 += 'other stuff'
}

次に、アラートの最後に、次のような操作を行います。

alert(alertValidation1 + '\n' + alertValidation2 + '\n' ...etc)
于 2012-12-17T19:24:45.717 に答える