#jquery #forms #validation #parsley.js
#jquery #формы #проверка #parsley.js
Вопрос:
У меня есть форма, которую я пытаюсь проверить с помощью Parsley следующим образом:
$('form#captainRegistrationForm').on('submit', function() {
var $this;
$this = $(this);
if ($this.parsley('validate')) {
console.log('yes');
} else {
console.log('no');
}
return false;
});
Неожиданное поведение:
При первой отправке консоль всегда возвращает no
(независимо от того, действительна форма или нет). При второй отправке она возвращается yes
(если форма действительна).
После второй отправки я намеренно делаю форму неправильной, но при третьей отправке консоль возвращается yes
. Только после того, как я снова нажму отправить, она возвращается no
.
Есть ли какой-либо надежный способ проверки формы с помощью Parsley? Я использую Parsley версии 2.0.2
Ответ №1:
Это своего рода поздняя отсрочка.
Однако вы не привязываете parsley к форме перед отправкой. Вы должны сделать что-то вроде этого:
// bind parsley to form
$('form#captainRegistrationForm').parsley();
// on form submit, validate the form
$('form#captainRegistrationForm').on('submit', function(e) {
var $this;
$this = $(this);
if ($this.parsley('validate')) {
console.log('yes');
} else {
console.log('no');
}
e.preventDefault();
return false;
});
Предполагая, что форма существует, у вас не должно возникнуть проблем с этим.
Комментарии:
1. Довольно поздно, что я не сказал, что это уже решено, я решаю свою проблему
if ($this.parsley().validate())
(это даже работает, когда я делаю это при отправке, но мне нужно вводитьdata-parsley-validate
html)