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()関数を試したことに注意してください。
誰かが何が悪いのか分かりますか?