2

我在 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();

但验证仅在单击提交按钮后第一次起作用。有人可以告诉我哪里错了。提前致谢。

4

1 回答 1

3

我得到了解决方案。我只是添加 .change() 事件

$(".bv-form")
.bootstrapValidator(k)
.change(function(e){
    $(".create-bid-form")
        .data("bootstrapValidator")
        .updateStatus('offer_price', 'NOT_VALIDATED')
        .validateField('offer_price');
})
.end();

这对我有用。我希望它对任何人都有帮助。

于 2014-12-16T09:53:42.223 回答