изменить цель формы после отправки

#javascript #iframe #attributes #target

#javascript #iframe #атрибуты #цель

Вопрос:

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

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

Я хочу, чтобы целевой атрибут формы менялся с 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>
  

Комментарии:

1. Где код? Вы говорите, что это ниже, но я этого не вижу.

2. используйте событие onsubmit в вашей форме

Ответ №1:

Как насчет того, чтобы измениться

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

Ответ №2:

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

Ответ №3:

Я думаю, вам нужно будет использовать 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>
  

Комментарии:

1. Хм. это отправляется в первый iframe1, но при повторной отправке он просто снова отправляет его в фрейм 1.