我在laravel中使用Bootstrap验证时遇到了问题。我有一个输入字段应该是一个数字,并且必须比某个值更大,第二件事是我的输入字段也可以通过下拉更改选项进行更改。点击提交按钮后,它工作正常。但是当我从下拉列表中更改选项时,提交按钮仍然无法单击,表示它仍然禁用。我的代码是
function c() {
var a = {
notEmpty: {
message: "You must set your price."
},
regexp: {
regexp: /^\d+([\.,]\d+(\.\d+)?)?$/i,
message: "Price must be a number."
},
greaterThan: {
value: 0
}
};
return a
}
var i = c();
$(".bv-form").bootstrapValidator({
fields: {
offer_price: {
trigger: 'change keyup',
validators: i
}
}
});
$(".create-bid-form button.submit").on("click", function(a) {
var b = $(".create-bid-form").data("bootstrapValidator");
b.isValid() && b.defaultSubmit(), b.validate();
}
更新输入值后,我也添加了这一行
$("input[name=offer_price]").change();
但是,验证仅在第一次单击“提交”按钮后才起作用。谁能告诉我哪里错了。提前谢谢。
答案 0 :(得分:3)
我得到了解决方案。我只是添加.change()事件,如
$(".bv-form")
.bootstrapValidator(k)
.change(function(e){
$(".create-bid-form")
.data("bootstrapValidator")
.updateStatus('offer_price', 'NOT_VALIDATED')
.validateField('offer_price');
})
.end();
这对我有用。我希望对任何人都有帮助。