Я использую пользовательский валидатор parsley.js (2.8.1), чтобы проверить, существует ли уже введенный код на сервере.Все работает нормально, но parsley().isValid()
и parsley().validate()
возвращает null
при отправке.
Удаление пользовательского валидатора работает нормально, но я не могу проверить существующий код на сервере со стороны клиента.
<form id="product-form">
[....]
<input id="product-code"
data-parsley-code="check-code" data-parsley-length="[3,32]"
type="text" class="form-control" required>
[....]
</form>
<script>
$(function(){
let formInstance = $('#product-form');
formInstance.parsley();
Parsley.addValidator('code', {
validateString: function(value, requirement) {
let xhr = $.post('/product/' + requirement + '/' + value);
return xhr.then(function (json) {
if (!json.status) {
return $.Deferred().reject(json.message)
}
})
},
messages: {en: 'Failed to check product code.'}
});
formInstance.on('submit', function(e) {
e.preventDefault();
console.log(formInstance.parsley().validate()); // returns null
console.log(formInstance.parsley().isValid()); // returns null
if (formInstance.parsley().isValid())) {
[.....]
}
}
[.....]
</script>
Я бы хотел проверить, отправить форму и выполнить Ajax.