Страница 1 из 1

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

Добавлено: 2015.01.06, 02:17
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 файл, который организовывает валидацию форм (ну например помечает классами ошибок нужные поля формы), можно ли как-то его использовать не для активрекордских, а для обычных форм ?

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

Добавлено: 2015.01.07, 00:16
nepster
Можно ли вообще как-то респонс получить в js ?

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

Добавлено: 2015.01.07, 10:52
Nafania

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

Добавлено: 2015.01.07, 19:58
nepster
да в том то и дело, что оно не всем так работает как ожидается.

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

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

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

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

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

   console.log('beforeSubmit');

});
 
Но что-то почти сразу перезагружает страницу.

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

Добавлено: 2015.01.12, 10:33
vismut
скорее всего у вас редирект происходит.
Yii2 щас отлавливает редирект и делает location.href