Bootstrap validator не работает, когда значение входного поля задано с помощью jQuery.вал()

у меня есть форма с этим полем:

<form id="formdelivery" class ="form-horizontal form-custom">
    <fieldset>
        <input name="delivery" type="text" class=""  value="">
    </fieldset>
</form>

значение поля ввода может быть скопировано с другого ввода одним нажатием кнопки:

   $('#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");           
        }
    });

проверка, применяемая на поле, такова:

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

проблема в том, что нажав на кнопку Копировать, bootstrap validator игнорирует новое значение, скопированное с кодом jQuery $('[name=delivery]').val($('[name=billing]').val());

Я делаю что-то неправильно или это проблема?

4 ответов


Как полагает Юнус, я добавил $('[name=delivery]').change(); после обновления вход для проверки.

затем я добавил строку триггера к инициализации валидатора начальной загрузки:

$('#formdelivery').bootstrapValidator({
       fields: {
            delivery: {
                trigger: 'change keyup',
                ...

таким образом, проверка выполняется также при изменении события.


попробуйте добавить это после того, как вы положите в нее значение :

 $('[name=delivery]').change();

после установки значения просто вызовите revalidateField ($field) в форме, также работает при проверке данных атрибутов html-bv-x


добавить data-BV-trigger в html5:

<input name="delivery" type="text" class=""  value="" data-bv-trigger="change keyup">

и событие изменения огня после изменения значения programaticly:

$('[name=delivery]').change();