วิธีการสร้างฟอร์มป๊อปอัพ - โมดัลใน magento2


20

ฉันใหม่สำหรับ magento2 ฉันพยายามสร้างป๊อปอัปสำหรับรูปแบบใหม่ของฉัน ฉันสร้างป๊อปอัปซึ่งทำงานได้ดี แต่ไม่สามารถสร้างคำกริยา

ต่อไปนี้เป็นรหัสสำหรับป๊อปอัพที่โหลดในการโหลดหน้า -

require([
        'jquery',
        'Magento_Ui/js/modal/alert'
    ],
    function($, alert) {
       alert({
            title: "Some title",
            content: "we can show popuop based on cookies later",
            autoOpen: true,
            clickableOverlay: false,
            focus: "",
            actions: {
                always: function(){
                    console.log("modal closed");
                }
            }
        });
    }
);

โปรดช่วยฉันสร้างกิริยา ความช่วยเหลือใด ๆ ที่เป็นที่นิยมจริงๆ


ฉันโหวตให้ปิดคำถามนี้เป็นหัวข้อนอกเรื่องเกี่ยวกับ Javascript และอยู่ในเว็บไซต์ stackoverflow.com ทั่วไป
Sander Mangel

คำตอบ:


42

ลองรหัสด้านล่าง:

<div id="popup-modal">
    <h1> Hi I'm here.... </h1>
</div>
<script>
    require(
        [
            'jquery',
            'Magento_Ui/js/modal/modal'
        ],
        function(
            $,
            modal
        ) {
            var options = {
                type: 'popup',
                responsive: true,
                innerScroll: true,
                title: 'popup modal title',
                buttons: [{
                    text: $.mage.__('Continue'),
                    class: '',
                    click: function () {
                        this.closeModal();
                    }
                }]
            };

            var popup = modal(options, $('#popup-modal'));

            $('#popup-modal').modal('openModal');
        }
    );
</script>

วิธีเปิดเนื้อหา div ใน <a> แท็ก onClick ได้อย่างไร
Suresh Chikani

@SHPatel กำลังมองหาวิธีการแก้ปัญหาแบบเดียวกันคุณพบมัน?
Luis Garcia

@Luis Garcia ใช่ฉันมีทางออก
Suresh Chikani

ใช่คุณสามารถใส่คำถามของคุณ
Suresh Chikani

@SHPatel ฉันจะรับข้อมูลในแบบฟอร์มได้อย่างไร ภายในclick: function () { this.closeModal();}ถ้าฉันมีtextboxอยู่ข้างใน<div id="popup-modal">?
Bojjaiah

10

คุณต้องใช้วิดเจ็ต Magento_Ui / js / modal / modal ดูรายละเอียดเพิ่มเติมใน ตัวอย่างเอกสารอย่างเป็นทางการ :

require([
    'jquery',
    'jquery/ui',
    'Magento_Ui/js/modal/modal'
], function($){
     $('<div />').html('Modal Window Content')
        .modal({
            title: 'My Title',
            autoOpen: true,
            closed: function () {
                // on close
            },
            buttons: [{
                text: 'Confirm',
                attr: {
                    'data-action': 'confirm'
                },
                'class': 'action-primary',
                click: clickCallback
            }]
         });
});

ฉันจะสร้าง creat แก้ไขรูปแบบ ui-modal modal ได้อย่างไร ไม่มีการเปลี่ยนเส้นทางโดยคอนโทรลเลอร์
mrtuvn

ฉันจะรับข้อมูลฟอร์มได้อย่างไร ภายในclick: function () { this.closeModal();}ถ้าฉันมีtextboxอยู่ข้างใน<div id="popup-modal">?
Bojjaiah

ฉันจะเรียกฟังก์ชั่นอื่นภายในฟังก์ชั่นคลิกแทน this.closeModal ()
Jaisa

1

หน้าต่างป๊อปอัพ Modal ในพื้นที่ส่วนหัว

ป้อนคำอธิบายรูปภาพที่นี่

 <a href="#" id="click-header">
    View Video
</a>
<div id="header-mpdal" style="display:none;">
    <div class="videoWrapper">
        <iframe allow="encrypted-media" allowfullscreen="" frameborder="0" gesture="media" height="315" src="https://www.youtube.com/embed/P45AMKIW0ok" width="560">
        </iframe>
    </div>
</div>

สคริปต์อยู่ที่นี่: -

<script>
    require(
        [
            'jquery',
            'Magento_Ui/js/modal/modal'
        ],
        function(
            $,
            modal
        ) {
            var options = {
                type: 'popup',
                responsive: true,
                innerScroll: true,
                title: '',
                buttons: [{
                    text: $.mage.__('Close'),
                    class: '',
                    click: function () {
                        this.closeModal();
                    }
                }]
            };

            var popup = modal(options, $('#header-mpdal'));
            $("#click-header").on('click',function(){ 
                $("#header-mpdal").modal("openModal");
            });

        }
    );
</script>

เนื่องจากนี่เป็นไซต์ตอบสนองฉันจึงเพิ่มวิดีโอแรปเปอร์เพื่อให้แน่ใจว่าตอบสนองได้

นี่คือ CSS ที่จะทำให้เกิดขึ้น:

.videoWrapper { position: relative;padding-bottom: 56.25%; /* 16:9 */padding-top: 25px;height: 0;
iframe {position: absolute;top: 0;left: 0;width: 100%;height: 100%;}
}

0

สร้างบล็อกแบบคงที่และแทรกต่อไปนี้:

<html>
<head>
<style>
.modalDialog {
    position: fixed;
    font-family: Arial, Helvetica, sans-serif;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(0,0,0,0.8);
    z-index: 99999;
    opacity:0;
    -webkit-transition: opacity 400ms ease-in;
    -moz-transition: opacity 400ms ease-in;
    transition: opacity 400ms ease-in;
    pointer-events: none;
}
.modalDialog:target {
    opacity:1;
    pointer-events: auto;
}

.modalDialog > div {
    width: 400px;
    position: relative;
    margin: 10% auto;
    padding: 5px 20px 13px 20px;
    border-radius: 10px;
    background: #fff;
    background: -moz-linear-gradient(#fff, #999);
    background: -webkit-linear-gradient(#fff, #999);
    background: -o-linear-gradient(#fff, #999);
}
.close {
    background: #606061;
    color: #FFFFFF;
    line-height: 25px;
    position: absolute;
    right: -12px;
    text-align: center;
    top: -10px;
    width: 24px;
    text-decoration: none;
    font-weight: bold;
    -webkit-border-radius: 12px;
    -moz-border-radius: 12px;
    border-radius: 12px;
    -moz-box-shadow: 1px 1px 3px #000;
    -webkit-box-shadow: 1px 1px 3px #000;
    box-shadow: 1px 1px 3px #000;
}
button {
    background-color: #0ea3d6;
    border: none;
    color: white;
    padding: 15px 32px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 16px;
    margin: 4px 2px;
    cursor: pointer;
}
.close:hover { background: #00d9ff; }

</style>
</head>
<body>
    <div class="row">
        <a href="#urlid"><button>Button</button></a>
        <div id="urlid" class="modalDialog">
            <div>
                <a href="#close" title="Close" class="close">X</a>
                <h2>Hand Tools</h2>
                <p>This is a sample modal box that can be created using the powers of CSS3.</p>
                <p>You could do a lot of things here like have a pop-up ad that shows when your website loads, or create a login/register form for users.</p>
            </div>
        </div>
    </div>
</body>
</html>

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.