$("#changeAliasForm").validate({
rules: {
changeAlias: {
required: true,
remote: {
url: "/validate.php",
type: "post",
data: {
changeAlias: function() {
return $("#changeAlias").val();
}
}
}
}
}
});
// Дальше открывается диалог с формой #changeAliasForm
$("#changeAliasForm").validate(); // или: $("#changeAliasForm").validate().element( "#changeAlias" );
alert( $("#changeAliasForm").valid() ); // эта строчка возвращает true, но validate.php вернул false
if ( $("#changeAliasForm").valid() ){
// Здесь действия в случае успешной валидации
$( this ).dialog( "close" ); // Перед тем как окошко диалога закрывается, сообщение о не прошедшей валидации появляется
}
По всей видимости скрипт выполняется до того как приходит ответ. Как заставить скрипт дождаться прохождения валидации?
Если предварительно ввести невалидное значение, не проходящие например по maxlength или required, после этого и remote обрабатывается нормально. Но если изначально значение поля заполнено верно по всем валидаторам кроме remote - то эффект такой.