Js валидация формы
-
- Сообщения: 27
- Зарегистрирован: 2017.08.19, 21:40
Js валидация формы
Здравствуйте! Как вручную проверить форму и узнать имеет ли она ошибки или нет?
Есть отправка ajax запроса, но перед его отправкой нужно провести валидацию форму.
Нашел несколько вариантов, но честно не пойму как их использовать.
Есть отправка ajax запроса, но перед его отправкой нужно провести валидацию форму.
Нашел несколько вариантов, но честно не пойму как их использовать.
-
- Сообщения: 27
- Зарегистрирован: 2017.08.19, 21:40
Re: Js валидация формы
Каким образом можно узнать прошла валидация успешна? Если вызвать валидацию, получаю такое сообщение:
Код: Выделить всё
Uncaught TypeError: Cannot set property 'submitting' of undefined
at jQuery.fn.init.validate (yii.activeForm.js:302)
at jQuery.fn.init.$.fn.yiiActiveForm (yii.activeForm.js:16)
at HTMLButtonElement.<anonymous> (index?gameId=3&LobbySearchForm[min_rank]=&LobbySearchForm[max_rank]=&LobbySearchForm[language]=:951)
at HTMLButtonElement.dispatch (jquery.js:5206)
at HTMLButtonElement.elemData.handle (jquery.js:5014)
Re: Js валидация формы
Покажите свой код
-
- Сообщения: 27
- Зарегистрирован: 2017.08.19, 21:40
Re: Js валидация формы
Код: Выделить всё
$(document).ready(function() {
var form = $('#search-form');
$('.has-spinner').click(function () {
form.yiiActiveForm('validate', true);
});
});
Re: Js валидация формы
А форма как в представлении прописана?
-
- Сообщения: 27
- Зарегистрирован: 2017.08.19, 21:40
Re: Js валидация формы
Код: Выделить всё
<?php $form = ActiveForm::begin([
'id' => 'search_form',
'action' => ['index', 'gameId' => $game->id],
'method' => 'get',
]); ?>
<?= $form->field($model, 'min_rank')->dropDownList(ArrayHelper::map($game->ranks, 'id', 'name'), [
'prompt' => Yii::t('app', 'Select')
]) ?>
<?= $form->field($model, 'max_rank')->dropDownList(ArrayHelper::map($game->ranks, 'id', 'name'), [
'prompt' => Yii::t('app', 'Select')
]) ?>
<?= $form->field($model, 'language')->dropDownList(ArrayHelper::map(\app\models\Language::find()->all(), 'id', 'name'), [
'prompt' => Yii::t('app', 'Select')
]) ?>
<div class="form-group">
<?= Html::submitButton(Yii::t('app', 'Search'), ['class' => 'btn btn-primary has-spinner']) ?>
<?= Html::resetButton(Yii::t('app', 'Stop'), ['class' => 'btn btn-default', 'id' => 'stop']) ?>
</div>
<?php ActiveForm::end(); ?>
Re: Js валидация формы
Код: Выделить всё
var form = $('#search-form');
Код: Выделить всё
'id' => 'search_form'
-
- Сообщения: 27
- Зарегистрирован: 2017.08.19, 21:40
Re: Js валидация формы
Да это уже исправил, только все равно не ясно, как получить результат валидации?SiZE писал(а): ↑2018.02.16, 08:32Код: Выделить всё
var form = $('#search-form');
Код: Выделить всё
'id' => 'search_form'
Re: Js валидация формы
подписаться на событие afterValidate
Re: Js валидация формы
Понимаю, что пост старый.
Но сам столкнулся с данной задачей.
Она была решена в коммите https://github.com/ptolomaues/yii2/comm ... d4b8404d24.
Вкратце.
В этом случае сабмит формы не происходит, а результат можно забрать с события afterValidate.
Но сам столкнулся с данной задачей.
Она была решена в коммите https://github.com/ptolomaues/yii2/comm ... d4b8404d24.
Вкратце.
Код: Выделить всё
form = $('#someForm');
form.data('yiiActiveForm').validate_only = true;
form.one('afterValidate', afterValidateEvent);
form.yiiActiveForm('validate', true); //run validation
function afterValidateEvent() {
if ($('#someForm').find('.has-error').length) {
// Validation failed
}
// Validation Succeed
}