Мне нужно проверить, существует ли имя пользователя. Если он существует, я увеличиваю переменную «form_error». Если «form_errors» is> 0, тогда я останавливаю код с возвратом false.Проверка формы JQuery с помощью ajax
Но, когда я делаю вызов Ajax, я не могу увеличить эту переменную. Вероятно, это проблема видимости/видимости?
Таким образом, в случае, если у меня есть ошибки на имени пользователя, мое form_errors будет навсегда-и форма представить ...
Как я могу увеличивать, что 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, потому что вы используете 'return false' перед ним, если ошибки> 0. Было бы лучше, если вы отлаживаете в своем браузере какой результат. – Admit
Возможный дубликат [Как вернуть текст ответа AJAX?] (Http://stackoverflow.com/questions/1225667/how-to-return-ajax-response-text) – Quentin