提交多个表格

时间:2010-11-23 11:24:48

标签: javascript html

我在一个页面中有多个iframe,每个iframe包含一个表单,我将提交按钮放在iframe之外,当用户按下提交时,所有表单都应该被提交,然后页面应该关闭,任何人都可以帮助我吗?

此功能调用onclick on提交按钮

function Save_Close()
     {
        if (window.frames.intake_pat_info_iframe && window.frames.intake_pat_info_iframe._Submit('Update')) {
            window.frames.intake_pat_info_iframe._Submit('Update');

        }
        if (window.frames.intake_job_info_iframe && window.frames.intake_job_info_iframe._Submit('Update')) {
            window.frames.intake_job_info_iframe._Submit('Update');

        }
        if (window.frames.intake_spine_his_iframe && window.frames.intake_spine_his_iframe._Submit('Update')) {
            window.frames.intake_spine_his_iframe._Submit('Update');

        }
        if (window.frames.intake_past_med_history_iframe && window.frames.intake_past_med_history_iframe._Submit('Update')) {
            window.frames.intake_past_med_history_iframe._Submit('Update');
    }

...

<input type="button" id="" name="" value="Save & Close" onclick="Save_Close()"/>

日Thnx

2 个答案:

答案 0 :(得分:0)

这不容易实现。

每个IFrame都是不同的文档,提交按钮只能在单个表单上工作,即属于的表单。

要使其生效,您需要使用javascript从所有IFrame中收集数据,以填充提交按钮所在的表单上的一个或多个隐藏字段。

如果不同的IFrame位于不同的域上,由于same origin安全策略,这将无法实现。

答案 1 :(得分:0)

只要您可以使用Javascript并且您的iframe都是从同一台服务器提供的,那就不那么难了。一个完全纯粹的内联JS方法看起来像(这是使用ASP.NET作为服务器端的东西,但重要的是按钮中的onclick()处理程序)

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <title>IFRAME form submit demo</title>
</head>
<body>
  <iframe name="iframe1" src="my_form.aspx"></iframe>
  <iframe name="iframe2" src="my_form.aspx"></iframe>
  <iframe name="iframe3" src="my_form.aspx"></iframe>
  <iframe name="iframe4" src="my_form.aspx"></iframe>
  <input type="submit" value="Submit All IFrames" 
           onclick="for(var i = 0; i < frames.length; i++) { frames[i].document.forms[0].submitButton.click(); }" />
</body>
</html>

编辑:现在显式调用form.submitButton.click()而不是form.submit()来调用绑定提交按钮的Click处理程序的函数。

相关问题