js активная проверка формы в yii2
У меня есть активная форма, и я пытаюсь проверить ее, используя скрипт, написанный ниже:
jQuery("#form").yiiActiveForm("submitForm");
Проблема в том, что скрипт всегда возвращает false. Но когда я вызываю его второй раз с некоторой задержкой, он возвращает истину.
jQuery("#form").yiiActiveForm("submitForm");
setTimeout(function () {
if (jQuery("#form").yiiActiveForm("submitForm")) {
//ajax call...
}
}, 300);
У меня вопрос, как валидация работает в yii2? И есть ли лучший способ проверки активных форм в JS?
Когда я использую
jQuery("#form").yiiActiveForm("submitForm");
обработчикbeforeSubmit вызывается.
$('#form').on('beforeSubmit', function (e) {
alert('message');
});
До того, как beforeSubmit автоматически проверяет форму?
1 ответ
Просто
Вы должны попробовать это
<?php
$this->registerJs('
jQuery("#w0").yiiActiveForm("add",{
"id": "customer-name",
"name": "name",
"container": ".field-customer-name",
"input": "#customer-name",
"error": ".help-block.help-block-error",
"validate": function(attribute, value, messages, deferred, $form) {
yii.validation.required(value, messages, {
"message": "Name be blank bug."
});
yii.validation.string(value, messages, {
"message": "Name must be a string.",
"max": 255,
"tooLong": "Name should contain at most 255 characters.",
"skipOnEmpty": 1
});
}
});
');
?>
изменения
w0 into your form ID
"id": "customer-name" into your input field ID
"container": ".field-customer-name" into input field div container class