Ajax Валидация формы и JS обработчики

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
nepster
Сообщения: 838
Зарегистрирован: 2013.01.02, 03:35

Ajax Валидация формы и JS обработчики

Сообщение nepster »

Есть вот такая форма:

Код: Выделить всё

    
        {% set form = active_form_begin({
            'options' : {
                'id' : 'form-create-market',
                'class' : 'form-horizontal',
            },
            'enableAjaxValidation' : true,
            'enableClientValidation' : false,
        }) %}
        
        ...
        
        <div class="form-group text-center">
            <input type="submit" name="button" id="button-create-market" value="{{ t('markets.main', 'CREATE_MARKET') }}" class="btn btn-primary" />
        </div>
        {{ active_form_end() }} 

 

Проблема 1:
После успешной валидации, если нажать на кнопку submit что-то где-то обновляет страницу, похоже на location.href, как это отключить ?

Где-то в глубинах интернета я нашел вот такие вот обработчики:

Код: Выделить всё


$('body').on('beforeValidate', '#form-create-market', function(event, messages, deferreds) {
    // Вызывается до валидации всей формы сразу после нажатия submit.
    console.log(1);
});

$('body').on('beforeSubmit', '#form-create-market', function() {
    // Вызывается после удачной валидации всех полей и до того как форма отправляется на северер.
    console.log(2);
    $(this).append("<input type=\"hidden\" name=\"submit\" value=\"1\" />");
});

$('body').on('afterSubmit', '#form-create-market', function() {
    // Вызывается после удачной валидации всех полей и после того как форма отправляется на северер.
    console.log(3);
});

 
1 - работает
2 - работает но после успешной валидации
до 3 не доходим, так как что-то обновляет страницу.

Вопрос как получить результат ответа от сервера в js переменную ?

как-то вот так:

Код: Выделить всё

console.log(response);
 

И 3 вопрос: У нас есть дефолтный yii2 js файл, который организовывает валидацию форм (ну например помечает классами ошибок нужные поля формы), можно ли как-то его использовать не для активрекордских, а для обычных форм ?
nepster
Сообщения: 838
Зарегистрирован: 2013.01.02, 03:35

Re: Ajax Валидация формы и JS обработчики

Сообщение nepster »

Можно ли вообще как-то респонс получить в js ?
nepster
Сообщения: 838
Зарегистрирован: 2013.01.02, 03:35

Re: Ajax Валидация формы и JS обработчики

Сообщение nepster »

да в том то и дело, что оно не всем так работает как ожидается.

Мне бы отловить ответ от сервера после успешной валидации.

Я пробовал вот так:

Код: Выделить всё

$('#form-create-market').on('beforeSubmit', function(e) {

    e.preventDefault();
    e.stopImmediatePropagation();

   console.log('beforeSubmit');

});
 
Но что-то почти сразу перезагружает страницу.
vismut
Сообщения: 64
Зарегистрирован: 2014.10.01, 16:46

Re: Ajax Валидация формы и JS обработчики

Сообщение vismut »

скорее всего у вас редирект происходит.
Yii2 щас отлавливает редирект и делает location.href
Ответить