Yii Framework Forum: Двойной Сабмит Формы Через Аякс - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Двойной Сабмит Формы Через Аякс Rate Topic: -----

#1 User is offline   ineersa 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 330
  • Joined: 15-April 13
  • Location:Ukraine

Posted 31 October 2013 - 03:50 AM

День добрый.

Есть форма, которая отправляется аяксом. Вот собственно код кнопки:
<?php 
        $id='applications-form_submit_' . rand(1, 255);
        echo CHtml::ajaxSubmitButton($model->isNewRecord ? UserModule::t('Create') : UserModule::t('Save'), Yii::app()->request->url, array(
                'type' => 'post',
                'dataType' => 'json',
                'beforeSend'=>'function(){$("body").undelegate("#'.$id.'","click");}',
                'success' =>
                'js:function (e) {
                    clear_errors();
                    if (e.status=="success"){
                       if (e.redirect=="here"){
                         notification(e.message);
                       }   
                       else window.location.replace(e.redirect);
                    } else {
                        $.each(e, function(key, val) {
                             $("#user-form #"+key+"_em_").text(val+" ");
                             $("#user-form #"+key+"_em_").parent(".error_wrapter").addClass("error");
                             $("#user-form #"+key+"_em_").css("display","block");
                             
                        });
                        
                        
                    }
                }',
            ), array(
                'id' => $id,
                
            ));?>


Собственно проблема - идет 2 запроса к контроллеру вместо 1го.

Что пробовал делать:
1. Добавить форме onsubmit="return false;"
2. Добавить preventDefault() для предотвращения сабмита.
3. Изменить action на левый.
Все это не помогло. 2 запроса идет не из за формы а именно из за кнопки.

Что пробовал делать с кнопкой:
1. Добавить $('body').unbind() в beforeSave и в success.
2. Добавить undelegate() соответственно туда же.

Ничего не помогает. Собственно всегда так делал формы, и никогда такой проблемы не было. Да и на 1.1.13 такое работает, сейчас же 1.1.14, может проще вернуть старую версию?
0

#2 User is offline   Newb 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 37
  • Joined: 25-July 11

Posted 31 October 2013 - 03:28 PM

CActiveForm используете? Если да, посмотрите что там написано про аякс валидацию. Возможно первый запрос валидация, второй сабмит. Правда не уверен была похожая ситуация правда не помню уже, просто сабмит кнопка была или все же аякс.
0

#3 User is offline   ORey 

  • Elite Member
  • PipPipPipPipPip
  • Yii
  • Group: Members
  • Posts: 1,703
  • Joined: 20-April 09
  • Location:Moscow, Russia

Posted 31 October 2013 - 03:28 PM

Двойной сабмит - это ajax-валидация формы + кривой код в контроллере.
Покопайтесь где-то там.
God is real unless declared as integer
0

#4 User is offline   ineersa 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 330
  • Joined: 15-April 13
  • Location:Ukraine

Posted 31 October 2013 - 06:24 PM

Решил проблему. Собственно был двойной бинд на сабмит. Всем спасибо.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users