2

IDが「id_email」の入力フィールドがあります。ユーザーは私のフォームのこのフィールドに自分のメールアドレスを入力します。ユーザーが入力した電子メールに対して検証コードを実行しようとしています。入力した値をサーバーに渡してデータベースと比較したいのですが、jQueryが空白の文字列を返し続けます。

HTML:

<div class="fieldWrapper">
                <label for="email">Email</label>
                <input type="text" placeholder="Email" id="id_email" name="email" maxlength="75">
           </div>

Javascript:

function CheckDuplicateEmail(invalidForm)
{
  $("#id_email").focusout(function()
  {
    $.ajax({ type: "POST",
             url: "/CheckDuplicateEmail/",
             dataType: "json",
             data: {"email" : $("#id_email").html()},
             success: function(jsonObject) 
             { 
                if (jsonObject === "exists")
                {
                    $("this").append("<ul class=\"errorlist\"><li>This email already exists<li></ul>")
                    invalidForm = true;
                }
                else
                {
                    invalidForm = false;
                }
             }
    });
  });
}

サーバーに送信されているAJAX投稿を見ると、電子メールが空白であることがわかります。$( "#id_email")。html()行が失敗しています。AJAXリクエストがサーバーに送信されるため、セレクターが正しく機能していることがわかります。これは、$( "#id_email")。focusoutが正しく機能していることを意味します。このステートメントは$( "#id_email")。html()ステートメントと同じセレクターを使用するため、html()関数が間違っていると想定する必要があります。同じ結果でtext()関数を試したことに注意してください。

誰かが何が悪いのか分かりますか?

4

2 に答える 2

3

この行を変更しますdata: {"email" : $("#id_email").html()},

data: {"email" : $("#id_email").val()},

.html()入力要素に対しては機能しません。.val()入力値を取得するにはを使用する必要があります。

于 2012-09-17T02:50:29.277 に答える
3

使用する$("#id_email").val()

function CheckDuplicateEmail(invalidForm)
{
  $("#id_email").focusout(function()
  {
    $.ajax({ type: "POST",
             url: "/CheckDuplicateEmail/",
             dataType: "json",
             data: {"email" : $("#id_email").val()},
             success: function(jsonObject) 
             { 
                if (jsonObject === "exists")
                {
                    $("this").append("<ul class=\"errorlist\"><li>This email already exists<li></ul>")
                    invalidForm = true;
                }
                else
                {
                    invalidForm = false;
                }
             }
    });
  });
}

この投稿をチェックして、、、など.html()のゲッター.val()をいつ使用するかを確認してください。.text()

于 2012-09-17T02:50:42.327 に答える