2010-11-23 120 views
0

我有一个页面每一个包含表单多个iframe,我把I帧外的提交按钮,当上提交的所有形式的用户应该按所需提交,然后页面应该被关闭,任何人都可以帮助我呢?提交多种形式

这个函数调用的onclick上提交按钮

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

回答

0

只要您可以使用JavaScript和您的I帧都从同一个服务器提供服务,它并不难。一个完全纯粹的内联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处理函数。

0

这是不容易实现的。

每个IFrame,这是一个不同的文件,和一个提交按钮只在单一表单上工作,一个是属于。

的得到这个工作,你将需要收集你使用JavaScript来填充提交按钮是窗体上的一个或多个隐藏字段所有的IFrame数据。

如果不同的iframe是不同的域然而,这不会是可能的,因为same origin安全策略。

+0

我有每个iframe中的函数可以提交包含的表单,全局按钮应该调用这些函数来提交表单,但它只提交第一个表单.. – ama 2010-11-23 11:38:28

+0

@ama - 是的。提交按钮只会提交它所在的表单。如果你想调用其他IFrame上的函数,你需要通过JavaScript从你的提交按钮调用它们。没有看到你的代码很难给你更具体的建议。 – Oded 2010-11-23 11:41:02