我一直试图用这几个星期来解决这个问题只有平庸的结果。由于我缺乏对Jquery的知识和最小的Javascript知识,我在网上拼凑了一些代码,我确信这都是错的。我正在使用Colorbox在iframe中显示带有添加到购物车按钮的产品(父和iframe都是来自我的服务器的页面)。我期望的结果是:
(为清晰起见而编辑)
到目前为止,我在iframe中使用了以下代码:
<form name="cart_quantity" action="index.php?action=add_product" method="post"
enctype="multipart/form-data" onSubmit="parent.$.fn.colorbox.close();">
<input type="hidden" name="qty" value="1" />
<input type="hidden" name="id" value="7" />
<input type="hidden" name="attri" value="17" id="attri-17" />
<input class="cssButton button" type="submit" value="ADD TO CART"/>
</form>
我在父页面上调用colorbox的脚本是:
<script>
function lightbox(){
$.fn.colorbox({
iframe:true,
onClosed:function(){ window.location = 'index.php?main_page=shopping_cart'; },
href:"./index.php?main_page=product_info&id=7"});
}
</script>
到目前为止存在的问题:
提交表单时,Colorbox关闭,表单只提交一半的时间(部分成功率)。我试图用firebug跟踪发布的数据,试图看看它是否每次发布,但因为它来自iframe,我似乎看不到任何东西。
如果有人能帮助我用正确的代码解决这个问题,我将非常感激!
答案 0 :(得分:0)
您可以尝试添加延迟:
onSubmit="window.setTimeout(function(){parent.$.fn.colorbox.close();}, 150);"
将150更改为确保发送请求所需的任何值。
详细了解setTimeout here。