单击下一个模态后,防止执行上一个模态

时间:2017-12-03 02:35:19

标签: javascript jquery ajax yii2 modal-dialog

我在一个表单中有一个模态和两个不同的按钮来调用此模态。 这是我的两个按钮

<?= Html::button('Search Ticket', [
    'value' => Yii::$app->urlManager->createUrl('/ticket-timbangan/list'),
    'class' => 'btn btn-primary showModal',
    'id' => 'BtnModalTicketList',
    'title' => 'List Ticket Timbangan',

]) ?>

<?= Html::button('Search Contract', [                        
    'value' => Yii::$app->urlManager->createUrl('/contract/list'),
    'class' => 'btn btn-primary showModal',
    'id' => 'BtnModalContractList',
    'title' => 'List Contract',
]) ?>

模态将显示用户选择填写新数据(作为参考)的票证或合约列表,返回值为Json::encode。 我的模态代码:

Modal::begin([
    'headerOptions' => ['id' => 'modalHeader'],
    'id' => 'modal',
    'size' => 'modal-lg',
    'closeButton' => [
        'id'=>'close-button',
        'class'=>'close',
        'data-dismiss' =>'modal',
    ],
    'class' => 'style=width:auto',
    'clientOptions' => [
        'backdrop' => false, 'keyboard' => true
    ]
]);
echo "<div id='modalContent'></div>";
Modal::end();

并在用于显示模态

的脚本中
$(document).on('click', '.showModal', function(){    
    if ($('#modal').hasClass('in')) {
        $('#modal').find('#modalContent')
                .load($(this).attr('value'));
        document.getElementById('modalHeader').innerHTML = '<h4>' + $(this).attr('title') + '</h4>';
    } else {
        $('#modal').modal('show')
                .find('#modalContent')
                .load($(this).attr('value'));
        document.getElementById('modalHeader').innerHTML = '<h4>' + $(this).attr('title') + '</h4>';
    }
});
用户单击选定行

后,操作列表中的

脚本将如下所示

$(document).on('click', '.select-row', function(){        
    // get id from custom button    
    var id = $(this).attr('data-id');
    $.get('../ticket-timbangan/get-ticket', {id : id}, function(data){
            var data = $.parseJSON(data);                    
            $('#pengirimanproduksi-ticket_id').val(data.id);
            $('#pengirimanproduksi-vehicle_id').val(data.vehicle_id).trigger('change');
            $('#pengirimanproduksi-item_id').val(data.item_id).trigger('change');            
            $('#pengirimanproduksi-bruto_tbg').val(data.bruto);
            $('#pengirimanproduksi-tara_tbg').val(data.tara);
            $('#pengirimanproduksi-remark').val(data.remark);            
    });
    $('#modal').modal('hide');        
});

问题是,当用户点击第一个按钮时,请说出显示模式的模式按钮包含要选择的故障单列表。单击选择后,就可以了。但是如果用户单击第二个按钮,则表示合同按钮显示模式包含要选择的合同列表并选择一个数据。在事件关闭模态之后,它将从第一个模态(即票证)执行脚本。 如何防止这种情况?

提前致谢

0 个答案:

没有答案