Как вставить модальное окно в ActiveForm перед submit?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
svil
Сообщения: 563
Зарегистрирован: 2018.02.12, 22:41

Как вставить модальное окно в ActiveForm перед submit?

Сообщение svil »

Перед отправкой формы из ActiveForm пользователь предупреждается о персональных данных через чекбокс с всплывающим модальным окном по ссылке, но когда я вставляю код, отвечающий за модальное окно перед submit кнопкой - выскакивает ошибка, что еще не конец формы.
Как вставить чекбокс с модальным окном перед отправкой формы?
Рабочий код Вида:

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

<?php

use yii\helpers\Html;
use yii\widgets\Pjax;
use yii\widgets\ActiveForm;
use yii\bootstrap\Modal;
use yii\captcha\Captcha;


?>
    <section>
        <div class="container">
            <div class="blog-post-area">

                <h2 class="title text-center">Карьера</h2>
                <div class="single-blog-post">
                    <h3>Вакансия: <?=$kareer->vacaition ?></h3>
                    <div class="post-meta">
                        <ul>
                            <li><i class="fa fa-calendar"></i> <?=$kareer->date ?></li>
                        </ul>
                    </div>
                </div>
            </div><!--/blog-post-area-->
            <?php if( Yii::$app->session->hasFlash('success') ): ?>
                <div class="alert alert-success alert-dismissible" role="alert">
                    <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                    <?php echo Yii::$app->session->getFlash('success'); ?>
                </div>
            <?php endif;?>


            <div class="replay-box">
                <div class="row">



                    <?php $form = ActiveForm::begin(); ?>


                    <div class="blank-arrow">
                        <label>Фамилия, имя, отчество</label>
                    </div>
                    <span>*</span>
                    <?= $form->field($kareer_employee, 'name')->textInput(['maxlength' => true])->label(false, ['style'=>'display:none']) ?>
                    <div class="blank-arrow">
                        <label>Телефон</label>
                    </div>
                    <span>*</span>
                    <?= $form->field($kareer_employee, 'phone')->textInput(['maxlength' => true])->label(false, ['style'=>'display:none']) ?>
                    <div class="blank-arrow">
                        <label>Электронная почта</label>
                    </div>
                    <span>*</span>
                    <?= $form->field($kareer_employee, 'email')->textInput(['maxlength' => true])->label(false, ['style'=>'display:none']) ?>
                    <div class="blank-arrow">
                        <label>Проверочный код</label>
                    </div>
                    <span>*</span>
                    <?= $form->field($kareer_employee, 'verifyCode')->widget(Captcha::className())->label(false, ['style'=>'display:none']) ?>
                    <div class="form-group">

                      <?= Html::submitButton('Отправить заявку', ['class' => 'get_discount btn continue']) ?>



                    </div>

                    <?php ActiveForm::end(); ?>




                </div>

            </div>

            <center><div class="checkbox col-sm-12">
                <label>
                    <input type="checkbox" name="checkme" id="agree" value="">
                    <i class="fa fa-2x icon-checkbox"></i>
                    Настоящим подтверждаю, что ознакомлен и согласен с
                    <?php
                    Modal::begin([
                        'header' => '<h3> Политика конфиденциальности</h3>',
                        'toggleButton' => [
                            'label' => 'условиями политики конфиденциальности',
                            'tag' => 'button',
                            'class' => 'btn modal2',
                        ],

                    ]);
                    ?>


                    <div class="kareer">
                        <p> Целью настоящего документа является безопасность и обеспечение конфиденциальности предоставленных Клиентами данных....
                      
                    </div>

                    <?php Modal::end();
                    ?>
                </label>
                </div></center>



        </div>
    </section>
main.js

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

$(document).ready(function(){

    $('.continue').prop('disabled', true);

    $('#agree').change(function() {

        $('.continue').prop('disabled', function(i, val) {
            return !val;
        })
    });
})
Аватара пользователя
Diplodok
Сообщения: 76
Зарегистрирован: 2012.07.09, 15:55
Контактная информация:

Re: Как вставить модальное окно в ActiveForm перед submit?

Сообщение Diplodok »

Модальное окно ставь после формы с параметром:

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

    'clientOptions' => [
        'show' => 0,
    ],
А на onclick чекбокса повесь открытие модального окна

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

$('#modal').modal('show');
Ответить