Bootstrapvalidator在动态输入字段中不起作用

时间:2019-10-18 16:43:50

标签: javascript jquery bootstrapvalidator bootstrapvalidator-1000hz

我使用Bootstrapvalidator来验证具有许多动态输入字段的表单。显示的输入字段数取决于所选comboBox(选择)的值,然后,该组合框会通过Ajax显示许多输入字段。

在第一次更改comboBox(选择)值时,Bootstrapvalidator起作用,但是在下一次comboBox(选择)更改时,Bootstrap验证器不起作用。

是否有解决此问题的解决方案?

OnChange组合框(选择)

$('#jenis_penawaran').on('change', function () {
    var jenis_penawaran = this.value;
    set_bobot_kriteria(jenis_penawaran);

});

在OnChange之后调用的函数

function set_bobot_kriteria(par) {
    var data = {
        'jenis_penawaran': par,
        'dm': '3',
    };
    $.ajax({
        type: 'POST',
        url: "<?php echo site_url('user/set_bobot'); ?>",
        data: data,
        success: function (result) {

            $('#bobot-kriteria').html(result); //dynamic input field depend on Combobox (select) change
            $('#form_update_bobot').bootstrapValidator({ //The validator does not work after OnChange the second time and after
                fields: {
                    "bobot_kriteria[]": {
                        validators: {
                            notEmpty: {
                                message: 'Bobot tidak boleh kosong'
                            },
                            numeric: {
                                message: 'Bobot harus berupa angka'
                            }
                        }
                    }
                }
            });
        },
    })
}

从OnChange组合框生成的动态输入字段的示例(选择)

<div class="form-group row m-b-15">
    <label class="col-form-label col-md-3">Nama Kriteria</label>
    <div class="col-md-9">
        <div class="input-group">
            <div class="input-group-append"><span class="input-group-text"><i class="ion-ios-speedometer"></i></span></div>
            <input type="hidden" name="id_bobot_kriteria[]" value="' . $row->id_kriteria . '"/>
            <input type="text" class="form-control" name="bobot_kriteria[]" id="id_bobot_kriteria" />
        </div>
    </div><
</div>
<div class="form-group row m-b-15">
    <label class="col-form-label col-md-3">Nama Kriteria</label>
    <div class="col-md-9">
        <div class="input-group">
            <div class="input-group-append"><span class="input-group-text"><i class="ion-ios-speedometer"></i></span></div>
            <input type="hidden" name="id_bobot_kriteria[]" value="' . $row->id_kriteria . '"/>
            <input type="text" class="form-control" name="bobot_kriteria[]" id="id_bobot_kriteria" />
        </div>
    </div><
</div>

1 个答案:

答案 0 :(得分:0)

您需要使用被动形式来绑定事件侦听器:

$(document).on('change', '#jenis_penawaran', function () {
    var jenis_penawaran = this.value;
    set_bobot_kriteria(jenis_penawaran);
});