首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将表单从iframe传递给具有条件的父级

将表单从iframe传递给具有条件的父级
EN

Stack Overflow用户
提问于 2012-03-16 16:57:24
回答 1查看 2K关注 0票数 0

最近,我问了一个类似的问题,Close Colorbox iframe after form submit and then redirect parent page,但后来稍微改变了方向,所以我认为最好创建一个新的帖子。

我在iframe中有一个add to cart表单(我的父服务器和iframe都位于同一个服务器/目录中)。在提交时,我想将表单传递给父页面上的脚本。脚本将关闭iframe (彩色框)窗口并提交表单,但有一个例外;我有两个版本的站点,一个用于使用iframe显示产品的标准浏览器,另一个用于直接打开产品页面并正常工作的移动站点。两者都使用存储信息的相同数据库,这意味着表单总是相同的,所以我需要一个条件,如果这个页面位于一个iframe (传递表单到脚本上提交)中,我需要一个条件。我在堆栈溢出上找到了这个片段,我认为它应该适用于条件:

代码语言:javascript
复制
if (top === self) { not in a frame } else { in a frame }

我有三种不同的表格,每一种都在一个单独的产品页面上:

最基本的:

代码语言:javascript
复制
<form name="add_cart" action="index.php?action=add" method="post" 
enctype="multipart/form-data">

<input type="hidden" name="quantity" value="1" /> 
<input type="hidden" name="products_id" value="1" /> 
<input type="hidden" name="id[1]" value="1" id="att-1-1" />
<input type="hidden" name="id[2]" value="2" id="att-2-2" /> 


<input class="cssButton button" type="submit" value="Add Product"/> 
</form>

然后一个有多个复选框选择:

代码语言:javascript
复制
<form enctype="multipart/form-data" method="post" action="index.php?action=add" 
name="cart_quantity">

<input type="hidden" value="1" name="quantity">
<input type="hidden" value="3" name="products_id">

<input id="option-8-1" type="checkbox" value="1" name="id[8][1]">
<input id="option-8-2" type="checkbox" value="2" name="id[8][2]">
<input id="option-8-3" type="checkbox" value="3" name="id[8][3]">
<input id="option-8-4" type="checkbox" value="4" name="id[8][4]">

<input class="cssButton button" type="submit" value="Add Selected Items" >
</form>

第三个选项是一个选项的下拉选项:

代码语言:javascript
复制
<form enctype="multipart/form-data" method="post" action="index.php?action=add" name="cart_quantity">


<input type="hidden" name="quantity" value="1" />
<input type="hidden" name="products_id" value="3" />  
<input type="hidden" name="id[6]" value="9" id="att-6-9" /> 

<select name="id-7" id="options">
<option value="1">option 1</option>
<option value="2">option 2</option>
<option value="3">option 3</option>
<option value="4">option 4</option>
</select>

我正在寻找任何帮助或指导,以使这一工作。虽然我对javascript有更好的掌握,但是Jquery会很好,任何事情都会很感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-16 17:05:41

您不需要条件,只需不显着地使用javascript,即如果启用javascript,javascript停止(劫持)表单提交,将表单数据发送给父级并关闭iframe --如果javascript未启用,表单通常会提交:例如,使用jQuery

代码语言:javascript
复制
<form id="my-form">
</form>

<script>
    function formSubmissionHandler(){
        // handle form submission
    }

    $(document).ready(function(){
        $('#my-form').submit(function(){
            formSubmissionHandler();
            return false;
        });
    });
</script>

http://en.wikipedia.org/wiki/Unobtrusive_JavaScript

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9741393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档