【问题标题】:Magento 2 add confirmation pop-up to the save buttonMagento 2 向保存按钮添加确认弹出窗口
【发布时间】:2020-03-09 17:58:42
【问题描述】:

我正在使用Magento Open Source 2.3.x,我有一个自定义表单。我需要做的是为保存按钮添加一个确认弹出窗口。我可以为Delete 按钮添加这样的弹出窗口,但不能为Save 按钮添加这样的弹出窗口。任何帮助都非常感谢。 这是我的 UI component.xml 文件。

    <form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
        <argument name="data" xsi:type="array">
            <item name="js_config" xsi:type="array">
                <item name="provider" xsi:type="string">ven_customers_storecredit_topup_form.topup_form_data_source</item>
            </item>
            <item name="label" translate="true" xsi:type="string">General Information</item>
            <item name="template" xsi:type="string">templates/form/collapsible</item>
        </argument>
        <settings>
            <buttons>
                <button class="Vendor\Module\Block\Adminhtml\Topup\Edit\BackButton" name="back"/>
                <button class="Vendor\Module\Block\Adminhtml\Topup\Edit\SaveButton" name="save"/>
            </buttons>
            <namespace>ven_customers_storecredit_topup_form</namespace>
            <dataScope>data</dataScope>
            <deps>
                <dep>ven_customers_storecredit_topup_form.topup_form_data_source</dep>
            </deps>
        </settings>
        <dataSource name="topup_form_data_source">
            <argument name="data" xsi:type="array">
                <item name="js_config" xsi:type="array">
                    <item name="component" xsi:type="string">Magento_Ui/js/form/provider</item>
                </item>
            </argument>
            <settings>
                <submitUrl path="*/*/save"/>
            </settings>
            <dataProvider class="Vendor\Module\Model\Customer\DataProvider" name="topup_form_data_source">
                <settings>
                    <requestFieldName>id</requestFieldName>
                    <primaryFieldName>entity_id</primaryFieldName>
                </settings>
            </dataProvider>
        </dataSource>
        <fieldset name="general">
            <settings>
                <label>General</label>
            </settings>
            <field name="topup" sortOrder="80" formElement="select">
                <settings>
                    <dataType>text</dataType>
                    <label translate="true">Amount</label>
                    <dataScope>topup</dataScope>
                </settings>
                <formElements>
                    <select>
                        <settings>
                            <options class="Vendor\Module\Model\Source\PriceOptions"/>
                        </settings>
                    </select>
                </formElements>
            </field>
        </fieldset>
    </form>

这里是按钮类

    <?php

    namespace Vendor\Module\Block\Adminhtml\Topup\Edit;

    use Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface;

    class SaveButton extends GenericButton implements ButtonProviderInterface
    {
        public function getButtonData()
        {
            return [
                'label' => __('Save'),
                'class' => 'save primary',
                'data_attribute' => [
                    'mage-init' => ['button' => ['event' => 'save']],
                    'form-role' => 'save',
                ],
                'sort_order' => 90,
            ];
        }
    }

【问题讨论】:

    标签: magento2 magento-2.3


    【解决方案1】:

    试试这个:

    namespace Vendor\Module\Block\Adminhtml\Topup\Edit;
    
    use Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface;
    
    class SaveButton extends GenericButton implements ButtonProviderInterface
    {
        public function getButtonData()
        {
           $message = __('Save it!');
            return [
                'label' => __('Save'),
                'class' => 'save primary',
                'onclick' => "confirmSetLocation('{$message}', '{$this->getUrl(action)}')",
                'sort_order' => 90,
            ];
        }
    }
    

    祝你好运!

    【讨论】:

    • 嗨,查尔斯,这不起作用。我已经在 中注明,如果名称为“save”,则不会触发按钮的点击事件。跨度>
    猜你喜欢
    • 2013-03-17
    • 1970-01-01
    • 2015-03-05
    • 2020-12-10
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 2012-09-10
    相关资源
    最近更新 更多