2012-02-18 65 views
1

这里是我的设置...将表单提交到iframe后的目标特定div。

我有两个页面,index.html和cart.html。我在index.html上有一个表单,它在提交时会在弹出的iframe中加载cart.html。这工作正常。

当我将cart.html加载到iframe中时,它会加载整个cart.html页面,并显示与index.html相同的标题/菜单/背景。但是,这是一个问题,我需要能够将cart.html加载到iframe中,然后针对带有“cart-content”ID的div。我只需要该div显示,而不是整个页面。

解决方法是将cart.html设置为风格,以便它适合iframe而不用它的头文件/菜单/背景,但我需要能够访问iframe之外的cart.html。

这里是我的形式:

<form id="product-form" method="post" action="/cart"> 
<!-- BIG CARTEL CONTENT, NOT IMPORTANT --> 
</form> 

我使用一个jQuery插件,FaceBox打开的iFrame。这是它的代码:

jQuery('#product-form').submit(function() { 
    jQuery.facebox('<iframe name="targetbox"></iframe>'); 
    return true; 
}).prop('target','target box') 

所以在形式我需要它的行动是类似于“/ cart#cart-content”有意义吗?希望有人能帮助!由于

+0

什么是'.prop('target','target box')'? – elclanrs 2012-02-18 01:30:02

+0

它是加载iframe的Facebox代码的一部分。 – Ryan 2012-02-18 01:39:47

回答

2

检查了这一点:iframe to Only Show a Certain Part of the Page

基本上,使用load函数加载了cart.html页面,并选择div出要显示页面 - 即

$('#popUpDiv').load('path-to-my-page/cart.html #divToDisplay')

在这种情况下,#divToDisplay是要加载到弹出框中的cart.html片段的ID。

注尖尖的回答的最后一个森坦斯 -

有可能是你需要做其他事情,并且显著差异 是,内容将成为主要页面的一部分,而不是被 分隔成一个单独的窗口。

如果您从加载的div提交,则可能需要对此进行解释。

HTH

+0

但是,如果我必须将该cart.html加载到iframe中,并且必须将其从表单中移除,那么我该如何加载该cart.html? – Ryan 2012-02-18 02:29:18

+0

在这种情况下,您不会使用iframe。内容会直接加载到页面上的div(弹出div)中。 – Dakine83 2012-02-22 02:14:20

+0

感谢您的帮助,我决定坚持使用iFrames,并在指向购物车的页面上创建任何链接以在iFrame中打开。如果我这样做,你的回答是正确的。谢谢 – Ryan 2012-02-24 14:23:38