在Thickbox中提交表单,然后关闭窗口

时间:2014-08-13 13:41:02

标签: javascript php forms woocommerce thickbox

我在Wordpress网站上使用Woocommerce插件。当您单击某个产品时,它会加载一个Thickbox iframe窗口,您可以在其中输入数量并将其添加到购物车。您可以在此处查看测试网站:http://75.103.92.37/rent-storage/

我想让表单将数据提交到购物车,然后关闭窗口。 This link是我找到的最接近的解决方案,但是使用了#34;感谢你"我没有的页面,如果可能的话,我希望避免使用。

这是我的表单代码。我放置了一个OnSubmit函数来关闭Thickbox窗口。它有效,但表单不提交。

    <form class="cart" method="post" enctype='multipart/form-data' onsubmit="javascript:parent.eval('tb_remove()')">

    <?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>

    <input type="hidden" name="add-to-cart" value="<?php echo esc_attr( $product->id ); ?>" />

    <?php
    if ( ! $product->is_sold_individually() )
        woocommerce_quantity_input( array(
            'min_value' => apply_filters( 'woocommerce_quantity_input_min', 1, $product ),
            'max_value' => apply_filters( 'woocommerce_quantity_input_max', $product->backorders_allowed() ? '' : $product->get_stock_quantity(), $product )
    ) );
    ?>

    <button type="submit" class="button alt"><?php echo $product->single_add_to_cart_text(); ?></button>

    <?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>

</form>

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

tb_remove()会返回false,因此表单不会提交。

您需要添加一个点击处理程序到&#34;添加到购物车&#34;运行tb_remove()并返回true。

由于您要在iframe中提交表单,因此您需要确保&#34;发布&#34;在从文档中删除iframe之前触发。

为了便于使用,最好还有一条消息,说明当厚箱关闭时,您的产品已添加到购物车中。