ユーザー名が存在するかどうかを確認する必要があります。存在する場合は、変数「form_error」をインクリメントします。"form_errors" が > 0 の場合、false を返してコードを停止します。
しかし、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
}