Formvalidation.io:某个字段有效时的事件

Posted

技术标签:

【中文标题】Formvalidation.io:某个字段有效时的事件【英文标题】:Formvalidation.io: event when certain field is valid 【发布时间】:2020-07-25 20:56:25 【问题描述】:

我有一个关于Formvalidation.io 的初学者问题。也许它甚至不是特定于该库,而是与一般的 javascript 更相关。

我想在某个字段(假设它的名称是postcode)经过验证并且有效后禁用验证器。但是,如果我的表单的 any 字段有效(不仅是特定字段),我的所有方法都会导致验证器未被禁用或被禁用。

我使用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 条件也不为真。 (试图从here给出的例子中改编它)

我还尝试了我在 on() method 上的文档中找到的内容(因为它关于 function(field) 的声明:“字段是无效字段的名称”):

const validFieldHandler = function(postcode) 
    fv.disableValidator('postcode');
;

fv.on('core.field.valid', validFieldHandler);
结果是一样的(验证器没有被禁用)。

但是,如果表单的 any 字段有效,则以下内容(可能预期)会禁用验证器。

fv.on('core.field.valid', function(e) 
    fv.disableValidator('postcode');
);

感谢您提供的任何建议!这是我的第一个问题,所以如果您需要更多信息,请告诉我!

最好的问候, 塞巴斯蒂安

【问题讨论】:

【参考方案1】:

自己找到了解决方案:

fv.on('core.field.valid', function(field) 
		if (field === 'postcode') 
			fv.disableValidator('postcode');
		
);

【讨论】:

以上是关于Formvalidation.io:某个字段有效时的事件的主要内容,如果未能解决你的问题,请参考以下文章

当字段有效时,Bootstrapvalidation 不会隐藏错误消息

即使表单有效,formvalidation.io 也会阻止表单提交

带有引导选择的 FormValidation.io

FormValidation / formvalidation.io Bootstrap 插件在样式更改时放错了验证图标

使用 jquery serialize 和 formvalidation.io 时如何防止表单重复发布?

如何使用 formvalidation.io 和多​​种语言在多选 (selectpicker) 中显示默认验证消息