弹出式模态框在Ajax响应后关闭

3

我有一个弹出式模态框,当单击时会打开,我想在提交表单并获得ajax成功响应后关闭此模态框。 我尝试过使用

success: function(data)
{
    //console.log('ticket added');
    this.closeModal();
}

但是它没有起作用,有人能解决这个问题吗?提前感谢。
<script>
require(
    [
       'jquery',
       'Magento_Ui/js/modal/modal'
    ],
    function($, modal) {
        var options = {
            type: 'popup',
            responsive: true,
            innerScroll: true,
            title: 'Test title',
            buttons: [{
                text: $.mage.__('Continue'),
                class: '',
                click: function () {
                    this.closeModal();
                }
            }]
         };

        var popup = modal(options, $('#events_popup'));
        $("#click-me").on('click',function(){ 
            $("#events_popup").modal("openModal");
        });
});
</script>

<div id="events_popup" style="display: none;" class="events_popup">
<script type="text/javascript">
    require(
        [
            'jquery'
        ],
    function($,modal) {
        $("#<?php echo $_product->getId()?>").submit(function(e) {

            $.ajax({
                type: "POST",
                url:  $(this).attr('action'),
                data: $("#<?php echo $_product->getId()?>").serialize(), 
                showLoader: true,
                success: function(data)
                {
                    //console.log('ticket added');
                    document.close();
                }
            });

            e.preventDefault(); 
        });
    }
); 

</script>
</div>
2个回答

2
我有一个解决方案,我们可以使用以下代码来销毁模态框。
$('#events_popup').modal('closeModal');

1
你试过了吗?
$('#yourmodalid').modal('hide');

1
从审核队列中:我可以请求您在您的答案周围添加更多的上下文吗?仅有代码的答案很难理解。如果您能在帖子中添加更多信息,这将有助于提问者和未来的读者。 - RBT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接