使用jQuery .val()设置输入字段值时Bootstrap验证器不工作

kik*_*s73 10 validation jquery jqbootstrapvalidation

我有一个这个领域的表格:

<form id="formdelivery" class ="form-horizontal form-custom">
    <fieldset>
        <input name="delivery" type="text" class=""  value="">
    </fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)

只需单击按钮,即可从另一个输入复制输入字段的值:

   $('#copy').click(function () {
        $('[name=delivery]').val($('[name=billing]').val());
        var res = $('#formdelivery').data('bootstrapValidator').validate();
        if (res.$invalidFields.length == 0) {
            alert("ok");
        }
        else {
            alert("no");           
        }
    });
Run Code Online (Sandbox Code Playgroud)

在该领域应用的验证是这样的:

$('#formdelivery').bootstrapValidator({
       fields: {
            delivery: {
                message: 'Invalid',
                validators: {
                    notEmpty: {
                    },
                    stringLength: {
                        min: 2,
                        max: 100,
                        message: 'you need almost 2 chars and not more than 100'
                    }
                }
            }
});
Run Code Online (Sandbox Code Playgroud)

问题是单击复制按钮,bootstrap验证器忽略用jQuery代码复制的新值 $('[name=delivery]').val($('[name=billing]').val());

我做错了什么还是这个问题?

kik*_*s73 8

正如Youness所建议的那样,我$('[name=delivery]').change();在更新输入内容后添加了 以进行验证.

然后我将触发线添加到bootstrap验证器初始化:

$('#formdelivery').bootstrapValidator({
       fields: {
            delivery: {
                trigger: 'change keyup',
                ...
Run Code Online (Sandbox Code Playgroud)

通过这种方式,还可以对更改事件进行验证.

  • 你救了我的命...! (2认同)