1
有人會看看這個,並告訴我我做錯了什麼嗎?我沒有從這個JQ函數中得到任何東西,並且錯誤div是空的。我對JQ非常陌生,所以請真正簡單。錯誤div未被填充
$(function() {
$('#form').submit(function() {
$(this).find('.error').hide();
try {
$.ajax({
'url': $(this).attr('action'),
'type': $(this).attr('method'),
'data': $(this).serialize(),
'dataType': 'json',
'success': function($response, $textStatus, $XMLHttpRequest) {
if(typeof($response.status) != 'undefined' && $response.status == 'OK') {
} else if(typeof($response.errors) != 'undefined') {
$.each($response.errors, function($field, $message) {
$('#' + $field)
.addClass('invalid')
.siblings('.error')
.text($message)
.show();
});
} else {
throw new Error('Undecipherable response from the server!');
}
},
'error': function($XMLHttpRequest, $textStatus, $errorThrown) {
}
});
} catch($err) {
// Display global error or redirect to 500 page.
}
});
});
<form method="post" action="1.php" id="form">
<input type="text" name="test" value="" id="test" />
<input type="submit" name="submit" value="submit" id="submit" />
</form>
<div class="error"></div>
大衛,再次感謝。我用你的html,但它仍然不工作。我得到的是一個轉發到1.php和從我的PHP迴應:'{「status」:「錯誤」,「錯誤」:{「test」:null}}' – jim 2010-10-12 07:33:03
+1用代碼進行詳細解釋.. – noobcode 2010-10-12 07:34:23
除了我錯誤之外,在關閉'.submit()'單擊處理程序'$(')'之前,還需要向jQuery返回'false' #form')。submit(function(){/*...*/ return false; });否則表單將正常提交,並且正如您所說,將表單重定向到「1.php」後面的表單「action」URL。 – 2010-10-12 07:36:55