Yii2 - 关闭模态时保持值输入

问题描述 投票:-1回答:1

在一个页面中我使用bootstrap modal中的表单渲染另一个页面,当填充输入时如果关闭模态(不提交)只有单击(x)将可以在打开模态时再次保持值输入?

指数,PHP

<?= Html::a('<button class="btn btn-info">+</button>',['app/create'], ['id' => 'btn-add']) ?>


<?php
Modal::begin([
    'header' => '<div id="modal-title"></div>',
    'id' => 'modal',
    'size' => 'modal-lg',
    'clientOptions' => ['backdrop' => 'static', 'keyboard' => false],
]);
echo "<div id='modalContent'></div>";
Modal::end();
?>

JS

$('body').on('click', '#btn-add', function(e) {
     e.preventDefault();
         $('#modal').modal('show').find('#modalContent').load($(this).attr('href'));
    });
yii2 bootstrap-modal
1个回答
1
投票

您正在使用jquery .load()方法在模态窗口内加载表单,无论您单击模式按钮上的关闭还是叠加背景,当您再次单击按钮+时,您将再次在模态窗口内加载内容。

因此,如果您真的想要这样做,您将必须在具有Modal代码的同一视图中移动表单,这意味着您必须将内联形式添加并将按钮javascript更改为$('#modal').modal('show')。它应该如下

<?= Html::a('<button class="btn btn-info">+</button>','#', ['id' => 'btn-add']) ?>


<?php
Modal::begin([
    'header' => '<div id="modal-title"></div>',
    'id' => 'modal',
    'size' => 'modal-lg',
    'clientOptions' => ['backdrop' => 'static', 'keyboard' => false],
]);?>

<div id='modalContent'>
<?php
//your active form starts here 
    $form = ActiveForm::begin(
        [
            'id' => 'your-form-id',
            'action' => Url::to(['/controller/action'])

        ]
    );
?>
<?php
       ActiveForm::end();
?>
</div>

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

你的Js应该很简单

$('body').on('click', '#btn-add', function(e) {
    e.preventDefault();
    $('#modal').modal('show');
});
© www.soinside.com 2019 - 2024. All rights reserved.