我有一個id爲「id_email」的輸入字段。用戶將在我的表單中將他的電子郵件輸入到此字段中。我試圖在用戶輸入的電子郵件上運行一些驗證碼。我想將輸入值傳遞給服務器以將其與數據庫進行比較,但jQuery不斷返回空白字符串。jQuery .html()返回null
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()函數。
有沒有人知道什麼是錯的?
不要在輸入欄上使用的.html(),以獲取輸入字段的值使用$(「#id_email」)。val()而不是 – OJay
hmmm ...嘗試'val()'也許? – bondythegreat