次の問題に直面しています。サインアップ フォームでは、指定されたユーザー名が既に使用されているかどうかをリモートで確認しようとします。これはうまく機能し、ユーザー名が既に使用されている場合は、エラー クラスを追加しても問題なく動作します。問題は、ユーザー名が既に使用されている場合でも、登録フォームを送信できることです。リモート検証はそれをブロックすべきではありませんか?
これが私の検証コードです。
var validator = $('#register').validate({
rules: {
registerUsername: {
required: true,
remote: {
type: 'post',
url: 'includes/CheckUsername',
data: {
username: function() {
return $('#registerUsername').val()
}
},
complete: function(data){
if( data.responseText != "found" ) {
$('#regUsernameGroup').addClass('has-error').removeClass('has-success');
return false;
}
else{
$('#regUsernameGroup').removeClass('has-error').addClass('has-success');
}
}
}
},
registerEmail: {
required: true
},
registerPassword: {
required: true
}
},
messages: {
registerUsername: {remote: 'tzuwertzut',required: 'asdasd'},
registerEmail: "",
registerPassword: ""
},
highlight: function(element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function(element) {
$(element).closest('.form-group').removeClass('has-error').addClass('has-success');
}
});
$('#myModal').on('hidden.bs.modal', function () {
validator.resetForm();
$('#regEmailGroup').removeClass('has-error').removeClass('has-success');
$('#regUsernameGroup').removeClass('has-error').removeClass('has-success');
$('#regPassGroup').removeClass('has-error').removeClass('has-success');
});
ヒントをいただければ幸いです。