0

基本的に、フォームを検証し、エラー メッセージを収集し、それらを動的に生成された div に追加しています。今、私はこれらのメッセージをこの div に追加することができません。

//generates a div onclick of submit button
$("body").append("<div class='overlay'><div class='errorContainer'>.html(errorMsg)</div><div>`<a href='javascript:void(0);' class='cross'>X</a><div></div>");

.html(errorMsg) これによりエラーが発生する/正しくない

function closeErrorBox() {
            var errorMsg = "";
                var ferrorMsg =  "Please say your first name" + "<br>";
                var aerrorMsg = "Please type address" + "<br>";
                var eerrorMsg = "Please type a valid email Address" + "<br>"
                if($("#name").val() == "") {
                    errorMsg += ferrorMsg;
                }
                if($("#address").val() == "") {
                    errorMsg += aerrorMsg;
                }
                if($("#email").val() == "") {
                    errorMsg += eerrorMsg;
                }

                $(".errorContainer").html(errorMsg);


                $(".overlay").remove();
                }
4

2 に答える 2

1

.errorContainerdiv は div の中にあります.overlay。関数の最後にあるオーバーレイを削除すると、errorContainer も削除されます。それ以外は、.html(errorMsg) 正常に動作しているようです (それでもエラーが発生する場合は、何が問題なのかを明記してください)。

あなたの質問を読み直して、私はあなたのプログラムの流れを理解できませんでした.エラーがすでにわかっているときにそのdivを追加し、「X」をクリックすると閉じますか? その場合は、次のようにすることをお勧めします。

var errorMsg = "";
var ferrorMsg =  "Please say your first name" + "<br>";
var aerrorMsg = "Please type address" + "<br>";
var eerrorMsg = "Please type a valid email Address" + "<br>"
if($("#name").val() == "") {
    errorMsg += ferrorMsg;
}
if($("#address").val() == "") {
    errorMsg += aerrorMsg;
}
if($("#email").val() == "") {
    errorMsg += eerrorMsg;
}

// Adapting Diego's answer:
$("<div class='overlay'><div class='errorContainer'></div><div><a href='javascript:void(0);' class='cross'>X</a><div></div>")
    .appendTo($("body"))
    .find(".errorContainer")
        .html(errorMsg)
        .end()
    .find(".cross")
        .click(function(e) {
            e.preventDefault();
            $(this).closest(".overlay").remove();
        });
于 2012-03-25T20:31:27.253 に答える
0

I think you meant:

//generates a div onclick of submit button
$("body").append("<div class='overlay'><div class='errorContainer'></div><div><a href='javascript:void(0);' class='cross'>X</a><div></div>").find(".errorContainer").html(errorMsg);
于 2012-03-25T20:26:09.117 に答える