提交后更改表单目标

change target of form after submit

本文关键字:表单 目标 提交      更新时间:2023-09-26

我花了那么多时间在这件事上,却毫无进展,我都快疯了。请帮助!

下面是代码。

我希望表单的TARGET属性从target="frame1"更改为target="frame2",然后更改为target="frame3"等等,在提交表单后无限制。表单将这些提交给iframe,因此每次提交后页面都不会刷新。

有人能帮忙吗?

<div id="container">
<div id="scan">
  <form method="post" id="auditRepairForm" name="auditRepairForm" action="https://example.com.com" target="changeTarget()">
    <input name="scanID" id="scanID" value="12345678" onFocus="this.value=''" />
    <input name="fromLaunchScreen" id="fromLaunchScreen" type="hidden"/>
    <input type="submit" id="SubmitForEdit" style="display:none;"/>
  </form>
</div>
<div class="outerdiv">
<iframe name="frame1" class="inneriframe"></iframe>
</div>
<div class="outerdiv">
<iframe name="frame2" class="inneriframe"></iframe>
</div>
<div class="outerdiv">
<iframe name="frame3" class="inneriframe"></iframe>
</div>
<div class="outerdiv">
<iframe name="frame4" class="inneriframe"></iframe>
</div>
<div class="outerdiv">
<iframe name="frame5" class="inneriframe"></iframe>
</div>
<div class="outerdiv">
<iframe name="frame6" class="inneriframe"></iframe>
</div>
<div class="outerdiv">
<iframe name="frame7" class="inneriframe"></iframe>
</div>
<div class="outerdiv">
<iframe name="frame8" class="inneriframe"></iframe>
</div>
<div class="outerdiv">
<iframe name="frame9" class="inneriframe"></iframe>
</div>
<div class="outerdiv">
<iframe name="frame10" class="inneriframe"></iframe>
</div>
</div>

如何改变

<input type="submit" id="SubmitForEdit" style="display:none;"/>

:

<input type="button" id="SubmitForEdit" onclick="changeformtarget();" style="display:none;"/>

和添加

<script type="text/javascript">
var count = 1;
function changeformtarget() {
     document.getElementById('auditRepairForm').target = 'frame'+count;
     count += 1;
}
</script>

如果您使用IFRAME而不是AJAX,则需要在提交到的页面中放置一小段javascript代码。
该代码应该直接更改父窗口中表单的属性,或者在父窗口中激活执行该操作的函数。

我认为你需要使用setTimeout,否则就没有机会跳出提交事件:

<script type="text/javacript">
var count = 2;
function submit() {
    setTimeout(function () {
         // this will get executed AFTER the form submits
         document.getElementById("the_form").target = "frame" + count;
         count += 1; // increase the counter so next time is frame3;
    }, 1);
    return true;
}
</script>
<form id="the_form" onsubmit="return submit();" target="frame1">
..etc..
</form>