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',
...
таким образом, проверка выполняется также при изменении события.
после установки значения просто вызовите 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();