@dmitry82

Yii2. Почему Событие submit на форме срабатывает дважды?

Событие submit на форме #login-form срабатывает дважды. Весь день на это потратил, так и не понял причину. Помогите пожалуйста. Устанавливал enableClientValidation, enableAjaxValidation в false, ничего не помогло.
$("#save").on('click', function() {
        $('.popup_overlay').show();
        $('#login').show();
        $('#login-form').on('submit', function(event) {
            alert('test');
           /* var config = getConfig();
            event.preventDefault();
            event.stopImmediatePropagation();
              $.ajax({
                  url: 'index.php?r=site%2Flogin',
                  type: 'POST',
                  data: {config: config, Login: { email: 'dmitry.82@mail.ru', password: '5i6i7i8i'} },
                  success: function(response) {
                     //window.location = response.route;
                       console.log(response.success);
                      console.log(response.route);
                  }
              });*/
        });
    });


Форма:
<?php $form = ActiveForm::begin(['id'=>'login-form', 'action'=>['site/login'], 'options'=>['style'=>'display:none']]); ?>
            <div class="form-group form-icon">
                <?= $form->field($login_model, 'email')->textInput(['class'=>'form-control darkStyle', 'placeholder'=>'Введите вашу почту'])->label(false) ?>
                <i class="glyphicon glyphicon-user input-icon" aria-hidden="true"></i>
            </div>
            <div class="form-group form-icon">
                <?= $form->field($login_model, 'password')->passwordInput(['class'=>'form-control darkStyle', 'placeholder'=>'Введите пароль'])->label(false) ?>
                <i class="glyphicon glyphicon-asterisk input-icon" aria-hidden="true"></i>
            </div>
            <?= Html::submitButton('Авторизоваться', ['class'=>'btn btn-submit', 'id'=>'login-btn']) ?>
            <?php ActiveForm::end(); ?>
  • Вопрос задан
  • 1474 просмотра
Пригласить эксперта
Ответы на вопрос 3
kawabanga
@kawabanga
У вас два события сразу запускаются.
Один на click кнопки,
другой - сабмит формы в activeform.
Ответ написан
Комментировать
А можно вашу разметку увидеть?
Я сделал вот такой пример и все прекрасно работает:
Ответ написан
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
Разделите два события и должно всё получиться.
Вызываете click показываете нужные блоки. Вызываете submit - отправляете форму.
Вот как-то так:
$("#save").on('click', function() {
        $('.popup_overlay').show();
        $('#login').show();
})
$('#login-form').on('submit', function(event) {
   alert('test')
})
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы