添加 data-bv-trigger="null" 使 bootstrapvalidator 只工作一次
Adding data-bv-trigger="null" make bootstrapvalidator works only one time
我正在使用 bootstrap 验证器回调来验证字段。我还想仅在单击按钮时触发 bootstrap 验证器。所以我使用
将按钮与 bootstrap 验证器绑定
$(document).ready(function () {
$('#mybtn').click(function () {
$('#formId').bootstrapValidator('validate');
});
});
但问题是验证器仅在第一次触发,然后如果验证为假,它会显示错误消息,然后如果没有通过单击该按钮再次触发。如果为真,则相应的功能有效。
这是我的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
});
我只想在单击按钮时触发 bootstrap验证器。如果我省略 data-bv-trigger 属性,验证器会在该特定字段的按键上触发,但一切正常。
最初我虽然它取消绑定我的点击事件。但是我错了。它实际上触发了 bootstrap 验证器,但验证不起作用。
我的需求已经解决了。通过调试 bootstrapValidator.js 完成调查后,我发现在验证元素后 bootstrap 通过添加数据属性在该元素上保留标记(不知道它存储 attr 的位置或什么值的详细信息stored) 仅在我们使用 data-bv-trigger 属性实际输入的事件时重置。默认情况下,它会在该元素的按键事件上重置该属性。同时它还验证字段并显示错误(如果有)。
但是如果我们设置 data-bv-trigger="null",在一次验证之后数据属性永远不会重置。因此,对该元素的任何进一步验证从未发生过。
要解决问题,如果得到如果绑定我的按钮单击 revalidateField 然后它将强制验证提交。这是语法
$(document).ready(function () {
$('#mybtn').click(function () {
$('#formId').bootstrapValidator('revalidateField', $(element));
});
});
我正在使用 bootstrap 验证器回调来验证字段。我还想仅在单击按钮时触发 bootstrap 验证器。所以我使用
将按钮与 bootstrap 验证器绑定$(document).ready(function () {
$('#mybtn').click(function () {
$('#formId').bootstrapValidator('validate');
});
});
但问题是验证器仅在第一次触发,然后如果验证为假,它会显示错误消息,然后如果没有通过单击该按钮再次触发。如果为真,则相应的功能有效。
这是我的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
});
我只想在单击按钮时触发 bootstrap验证器。如果我省略 data-bv-trigger 属性,验证器会在该特定字段的按键上触发,但一切正常。 最初我虽然它取消绑定我的点击事件。但是我错了。它实际上触发了 bootstrap 验证器,但验证不起作用。
我的需求已经解决了。通过调试 bootstrapValidator.js 完成调查后,我发现在验证元素后 bootstrap 通过添加数据属性在该元素上保留标记(不知道它存储 attr 的位置或什么值的详细信息stored) 仅在我们使用 data-bv-trigger 属性实际输入的事件时重置。默认情况下,它会在该元素的按键事件上重置该属性。同时它还验证字段并显示错误(如果有)。 但是如果我们设置 data-bv-trigger="null",在一次验证之后数据属性永远不会重置。因此,对该元素的任何进一步验证从未发生过。 要解决问题,如果得到如果绑定我的按钮单击 revalidateField 然后它将强制验证提交。这是语法
$(document).ready(function () {
$('#mybtn').click(function () {
$('#formId').bootstrapValidator('revalidateField', $(element));
});
});