【问题标题】:How to clear form input on page load woocommerce checkout如何在页面加载woocommerce结帐时清除表单输入
【发布时间】:2020-07-17 07:44:40
【问题描述】:

我在订单确认页面上为客户提供回购服务。如果他们点击链接,他们将被直接发送到结帐页面。但是,表格随后会预填充以前的数据。我想清除它,因为这个想法是每人一个产品(票)。

到目前为止,我有以下内容(在页面源代码中我可以看到脚本已加载):

function print_script() {

if (isset($_GET['extrapersoon']) && is_page(21560)){

    echo '<script>
window.addEventListener("load", function(){myFunction()};

function myFunction() {
  document.getElementsByClassName("woocommerce-checkout").reset(); 
}
</script>';
        }
  }
add_action('wp_print_scripts', 'print_script');

我也尝试了其他触发器,例如 window.load 但还没有结果。

有人吗?

【问题讨论】:

    标签: wordpress forms woocommerce


    【解决方案1】:

    您应该使用add_action( 'wp_footer', 'print_script' ); 将脚本放在页脚中,以确保表单在数据加载到其中之后被清除。

    Wordpress 默认有 jQuery,所以我使用它来查找文档中的所有表单并清除它们。该函数在页面加载时自动调用,因此不需要事件监听器。

    <?php
    function print_script() { 
        if (isset($_GET['extrapersoon']) && is_page(21560)) { ?>
            <script type="text/javascript">
                ( function( $ ) {
                    $('form').each(function() { this.reset() });
                }( jQuery ) );
            </script>
        <?php }
    }
    add_action( 'wp_footer', 'print_script' ); ?>
    

    【讨论】:

      猜你喜欢
      • 2018-03-05
      • 1970-01-01
      • 2015-11-20
      • 1970-01-01
      • 2020-03-31
      • 1970-01-01
      • 2017-07-10
      • 2010-11-19
      • 1970-01-01
      相关资源
      最近更新 更多