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