我正在使用引导程序验证程序回调来验证字段。我也想仅在单击按钮时触发引导程序验证器。因此,我使用
将按钮与引导程序验证器绑定$(document).ready(function () {
$('#mybtn').click(function () {
$('#formId').bootstrapValidator('validate');
});
});
但是问题是验证器仅第一次触发,然后,如果验证为假,则会显示错误消息,然后单击该按钮不会再次触发。如果为true,则相应的功能正常工作。
这是我的html
<form id="formId">
<input type="text" name="Iname" data-bv-trigger='null'/>
</form>
这是我的验证人
$('#formId').bootstrapValidator({
fields: {
Iname: {
validators: {
callback: {
callback: function (value, validator, $field) {
if(!isValidData(value)) {
return {
valid: false,
message: "invalid message"
};
}
else {
return { valid: true };
}
}
}
}
}
}
}).on('success.form.bv', function (e) {
e.preventDefault();
//Do corresponding operation
});
我只想在单击按钮时触发bootstrapValidator。如果我省略data-bv-trigger属性,则验证程序将在该特定字段的按键上触发,但一切正常。 最初,我虽然解除了我的点击事件的绑定。但是我错了。它实际上会触发引导程序验证器,但验证不起作用。
答案 0 :(得分:0)
我已经解决了我的要求。在通过调试bootstrapValidator.js进行调查后,我发现,在验证元素引导程序之后,通过添加仅在其上重置的data属性(不知道其存储attr的详细信息或存储的值的详细信息)在该元素上保留标记。我们实际上使用data-bv-trigger属性输入的事件。默认情况下,它将在该元素的按键事件时重置该属性。同时,它还会验证字段并显示错误(如果有)。 但是,如果我们设置data-bv-trigger =“ null”,则一次验证后,数据属性就不会重置。因此,从未对该元素进行任何进一步的验证。 若要解决该问题,如果将我的按钮绑定到revalidateField上,则将强制验证该字段。这是语法
$(document).ready(function () {
$('#mybtn').click(function () {
$('#formId').bootstrapValidator('revalidateField', $(element));
});
});