изменить цель формы после отправки - PullRequest
1 голос
/ 25 апреля 2011

Я так много работал над этим и, добившись нулевого прогресса, я вот-вот сойду с ума.Пожалуйста, помогите!

Ниже приведен код.

Я хочу, чтобы атрибут 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>

Ответы [ 3 ]

2 голосов
/ 13 марта 2014

Как изменить

<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>
0 голосов
/ 25 апреля 2011

Я думаю, вам нужно использовать setTimeout, потому что иначе нет шанса выйти из события submit:

<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>
0 голосов
/ 25 апреля 2011

Если вы используете IFRAME, а не AJAX, вам нужно поместить небольшой код javascript на страницу, которую вы отправляете, в iframe.
Этот код должен либо напрямую изменить атрибут формы в родительском окне, либоактивировать функцию в родительском окне, которая делает это.

...