У меня вопрос новичка по Formvalidation.io . Может быть, он даже не указан c для этой библиотеки, но больше относится к Javascript в целом.
Я бы хотел отключить валидатор после того, как определенное поле (скажем, его имя postcode
) имеет был подтвержден и действителен. Тем не менее, все мои подходы приводят к тому, что валидатор не отключается или отключается, если любое поле моей формы является действительным (не только указанное c one).
Я использую core.field.valid событие и состояния документации библиотеки:
Параметр события представляет имя поля.
Я не уверен, как это случается.
Я пытался:
document.addEventListener('DOMContentLoaded', function(e) {
const fv = FormValidation.formValidation(
document.getElementById('adminForm'),
{
fields: {
postcode: {
validators: {
notEmpty: {
message: 'Please enter a postcode.'
}
}
}
},
plugins: {
submitButton: new FormValidation.plugins.SubmitButton(),
defaultSubmit: new FormValidation.plugins.DefaultSubmit(),
trigger: new FormValidation.plugins.Trigger({
event: {
postcode: 'change',
}
})
}
}
);
fv.on('core.field.valid', function(e) {
if (e.field === 'postcode') {
fv.disableValidator('postcode');
}
});
});
Но условие if не выполняется, даже если поле проверено и допустимо. (попытался адаптировать его из приведенного примера здесь )
Я также попробовал то, что нашел в документации по методу on () (как говорится в отношении function(field)
: "field is name of invalid field"):
const validFieldHandler = function(postcode) {
fv.disableValidator('postcode');
};
fv.on('core.field.valid', validFieldHandler);
Результат тот же (валидатор не отключен).
Однако следующее (как и следовало ожидать) отключает валидатор, если любое поле формы действительно.
fv.on('core.field.valid', function(e) {
fv.disableValidator('postcode');
});
Спасибо за любой совет, который вы можете предложить! Это мой первый вопрос, поэтому, пожалуйста, дайте мне знать, если вам нужна дополнительная информация!
С уважением, Себастьян