Я использую
jQuery Validation plugin (JVP) для валидаций форм через ajax-запросы к серверу. Всё работает отлично кроме одного: JVP не валидирует удалённо пустые поля.
Я не против использовать дефолтное правило плагина
required
без запросов к серверу, но хотелось бы возможность такой валидации всё-таки реализовать. Да и задачку хочется решить)
Итак, проблема: JVP не валидирует пустые поля через его встроенный метод
remote
. Но я могу использовать функции в его
required
методе:
required: function(element) {
return true_or_false;
}
Я решил пульнуть асинхронный ajax-запрос внутри этой функции, но у меня не выходить отдать ей value, получаемое от сервера. Вот код (CoffeeScript):
validate_url = '/emails/validate'
required_validate = (e, callback) ->
data = {}
data[e.name] = $(e).val()
$.ajax(
url: validate_url
type: 'post'
dataType: 'json'
data: data
success: (response) ->
callback(response)
)
$('#my_form').validate(
rules:
'email[email]':
required: (element) ->
required_validate(element, (response) ->
if response == true || response == "true"
false
else
true
)
)
Я проверил данные, которые уходят на сервер, и его ответ — с ними всё ок. Проблема в том, что метод
required
JVP не ждёт ответа от сервера и получает
true
раньше.
Как мне вернуть ему этот ответ?