我有一个关于Formvalidation.io的初学者问题。也许它甚至不是特定于该库的,但通常与 Javascript 更相关。
我想在某个字段(假设它的名称是postcode
)经过验证并且有效后禁用验证器。但是,如果我的表单的任何字段有效(不仅是特定字段),我的所有方法都会导致验证器未被禁用或被禁用。
我使用core.field.valid事件和库的文档状态:
event 参数表示字段名称。
我不确定这是怎么发生的。
我试过了:
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)
:“字段是无效字段的名称”):
const validFieldHandler = function(postcode) {
fv.disableValidator('postcode');
};
fv.on('core.field.valid', validFieldHandler);
但是,如果表单的任何字段有效,则以下内容(可能预期)会禁用验证器。
fv.on('core.field.valid', function(e) {
fv.disableValidator('postcode');
});
感谢您提供的任何建议!这是我在这里的第一个问题,所以如果您需要更多信息,请告诉我!
最好的问候,塞巴斯蒂安