我正在構建一個登錄表單,它將根據數據庫驗證登錄,然後如果成功將用戶傳遞給安全頁面。通過使用.val()返回'null'錯誤的表單驗證通過jQuery.post
我已驗證我的SQL是正確的,並基於我借用代碼的示例,我的提交表單也應該正確。實際上,sample code在我的服務器上正常工作,這表明DOM錯誤。這是我跑什麼的精簡版本:
<script type="text/javascript" src="inc/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function() {
jQuery("#login_form").submit(function() {
jQuery("#msgbox").removeClass()
.addClass('messagebox')
.text('verifying')
.fadeIn(1000);
jQuery.post("inc/ajax_login.php", {
user_name: $('#username').val(),
password: $('#password').val()
}, function(data) {
if (data == 'yes') { /* ... */
}
else { /* ... */
}
});
return false;
});
});
</script>
形式,因此運行,部分線路進一步下跌的頁面:
<form action="" id="login_form" method="POST">
<input type="text" name="username" id="username" value="username" />
<input type="password" name="password" id="password" value="password" /><br />
<input type="hidden" name="homeDir" id="homeDir" value="" /> <span id="msgbox"></span> <br />
<input type="submit" name="Submit" id="submit" value="ENTER" class="submit"/>
</form>
然而,JS拋出一個錯誤說「遺漏的類型錯誤:無法調用null的方法'val'。「
我在這裏錯過了一些東西。假設.post
在表單提交之前不會被調用(並且在表單提交之前錯誤不會觸發),爲什麼val()
會被調用爲空值?表格將填充到那時。
另外,我住在一個PHP4.4.9服務器上。據我的理解,這不是一個JSON調用(因此PHP5),但我會毫不猶豫地承認我在這裏頭痛。 Webdev對我來說是過去的生活,從來不是我的強項。
你在'#username'和'#password'上調用'val()',當$ .post調用被創建時,這些DOM元素是否存在? – frictionlesspulley 2012-03-02 17:54:05