我需要检查用户名是否存在。如果存在,我增加一个变量“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