2010-11-23 4 views
0

하나의 양식에 여러 개의 iframe이 있고 각각의 양식에 iframe이 포함되어 있고 제출 버튼을 iframe 외부에 놓고 사용자가 모든 양식을 제출할 때 양식을 제출 한 다음 페이지를 닫아야합니다. 어느 누구도이 일에서 나를 도울 수 있습니까?복수형 제출

버튼

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

자바 스크립트를 사용할 수 있고 iframe이 모두 동일한 서버에서 제공되는 한 그리 어렵지 않습니다. 지금은 명시 적으로 form.submitButton를 호출합니다 (이 서버 측 물건 ASP.NET을 사용하지만 중요한 비트 버튼의 온 클릭() 핸들러)

<%@ 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> 

이 수정 같이 완전히 순수 인라인 JS 접근 보인다 제출 버튼의 클릭 핸들러에 바인딩 된 함수를 호출하려면 form.submit() 대신 .click()을 호출하십시오.

+0

IFrame 내부의 함수를 사용하여 양식을 제출하고 싶습니다. – ama

0

이 달성하는 것은 쉽지 않다 제출의 onclick에라는이 기능을 사용하지 않음.

각 IFrame은 다른 문서이며 제출 버튼은 속한 단일 양식에서만 작동합니다.

이 기능을 사용하려면 제출 버튼이있는 양식에서 하나 이상의 숨겨진 필드를 채우기 위해 자바 스크립트를 사용하여 모든 IFrame에서 데이터를 수집해야합니다.

그러나 다른 IFrame이 다른 도메인에있는 경우 same origin 보안 정책으로 인해 가능하지 않습니다.

+0

각 iframe에서 함수가 포함 된 양식을 제출할 수 있습니다. 글로벌 버튼은 양식을 제출할 때이 함수를 호출해야하지만 첫 번째 양식 만 제출합니다 .. – ama

+0

@ama - 맞습니다. 제출 버튼은 현재 제출 된 양식 만 제출합니다. 다른 IFrame에서 함수를 호출하려면 javascript를 통해 제출 단추에서 호출해야합니다. 코드를 보지 않고보다 구체적인 조언을하는 것은 어렵습니다. – Oded

관련 문제