我需要檢查用戶名是否存在。如果存在,我增加一個變量「form_error」。 如果「form_errors」> 0,那麼我停止返回false的代碼。JQuery表單驗證與AJAX
但是,當我做了一個Ajax調用,我不能增加這個變量。可能是範圍/可見性問題?
所以,我對用戶名錯誤的情況下,我的form_errors將永遠0和形式提交...
我怎麼能增加與form_errors?
感謝所有,我離開了一段代碼
$('#add-sponsor').submit(function() {
var form_errors = 0;
var username = ('#username').val();
$.ajax({
url : location.protocol + '//' + location.host + '/commands.php?action=check-username',
data : {
username : username
},
type : 'post'
}).done(function (result) {
if (result=='false') {
$('#username').parent().addClass('has-error');
$('#username').parent().removeClass('has-success');
$('#username').parent().next('.help-block').text('Questo username già esiste');
form_errors++;
} else {
$('#username').parent().addClass('has-success');
$('#username').parent().removeClass('has-error');
$('#username').parent().next('.help-block').text('');
}
}); // ajax
if (form_errors > 0) {
return false;
}
console.log(form_errors); // <- this is forever 0
}
這將永遠是0,因爲如果錯誤> 0,那麼在它之前使用'return false'。如果在瀏覽器中調試什麼結果會更好。 – Admit
可能重複的[如何返回AJAX響應文本?](http://stackoverflow.com/questions/1225667/how-to-return-ajax-response-text) – Quentin