-1

以下のajax成功関数は私の最後のerror4メッセージのみを表示しています。私がチェックしている応答は正常になっていますが、メッセージが表示されていません。

$.ajax({
    type:...
    url :...
    data:...
success: function (exst_rsp) {
//if email is not register
    if (exst_rsp == "email_no") {
        exstInfo.text("error1");
        exstInfo.addClass("error");
        email_err = true;
    }
    else {
        exstInfo.text("");
        exstInfo.removeClass("error");
        email_err = false;
    }

//if user has already submit a coupon
    if (exst_rsp == "played") {
        couponInfo.text("error2");
        couponInfo.addClass("error");
        email_pl_err = true;
    }
    else {
        couponInfo.text("");
        couponInfo.removeClass("error");
        email_pl_err = false;
    }

//if email & pass don't match
    if (exst_rsp == "email_pass_no") {
        matchInfo.text("error3");
        matchInfo.addClass("error");
        pass_err = true;
    }
    else {
        matchInfo.text("");
        matchInfo.removeClass("error");
        pass_err = false;
    }

//if captcha don't match
    if (exst_rsp == "wrong") {
        capthInfo.text("error4");
        capthInfo.addClass("error");
        captcha_err = true;
    }
    else {
        capthInfo.text("");
        capthInfo.removeClass("error");
        captcha_err = false;
    }

    if (exst_rsp == "ok") {
        exst_rsp_ok = false;
        $('#content').load('f.php');
    }
    else {
        exst_rsp_ok = true;
    }
    if (email_reg_err == true || email_pl_err == true || email_pass_err == true || captcha_err == true || exst_rsp_ok == true) {
        return false;
    }
    else {
        return true;
    }
}
})
4

2 に答える 2

2

コードはリファクタリングを使用して、よりクリーンな関数で目的を達成できますが、実際の例を示すために、ここから始めることができます。

http://jsfiddle.net/Q3Zpk/1/

配列内の値を変更して、それに応じて html が変更されることを確認できます。

有利なスタートを切るためにエラーを配列に入れましたが、文字列の代わりにエラーコードを使用し、その配列を渡してそれに応じてエラーを解析する関数を使用することを検討します。

于 2012-07-18T17:57:04.863 に答える
0

間違いは、同じ ID を使用してエラーを表示していたことです。コード修正。

そして、元気に働いています!

ありがとうございました

于 2012-07-20T06:52:19.737 に答える