Ich habe mehrere Formulare (Benutzer kann neues Formular dynamisch hinzufügen) auf einer Seite, sie sind alle an der gleichen Struts2 Aktion eingereicht. Ich muss alle diese Formulare senden, wenn der Benutzer auf die Schaltfläche Speichern klickt.
Dinge gehen gut in FF. Aber in IE und Google Chrome wird nur das letzte Formular gesendet.Multi-Forms Einreichung in IE und Google Chrome
Jede Hilfe wird geschätzt. Vielen Dank.
Die Elemente jeder Form sind die gleichen, eine Form ein Objekt. Die Daten eines jeden Formulars werden zu einem Domänenobjekt hinzugefügt, dann wird das Objekt in der Datenbank beibehalten.
JavaScript-Funktion zu handhaben Betrieb sparen:
<script type="text/javascript" >
function submit() {
var formCnt = document.getElementById('formCnt').value;
for(var i = 1; i <= formCnt; i++) {
var formName = 'form' + i;
document.forms[formName].submit();
}
}
</script>
...
<input type="hidden" id="formCnt" name="formCnt" value="5" />
<form action="add.htm" name="form1" id="form1" method="post" enctype="multipart/form-data" />
<input type="text" name="item.price" id="item.price" value="" />
...
</form>
<form action="add.htm" name="form2" id="form2" method="post" enctype="multipart/form-data" />
<input type="text" name="item.price" id="item.price" value="" />
...
</form>
...
<form action="add.htm" name="form5" id="form5" method="post" enctype="multipart/form-data" />
<input type="text" name="item.price" id="item.price" value="" />
...
</form>
...
Durch "es funktioniert in FF" Ich nehme an, Sie meinen, dass die Daten in der Datenbank gespeichert werden? Sie erhalten nicht alle Inhalte aus allen Formularen gleichzeitig in derselben Struts-Aktion, oder? – deceze
Es gibt nur eine Struts-Aktion namens AddAction, Formulare auf der Seite werden alle an AddAction übergeben. Also kann ich nicht verschiedene Feldnamen in der JSP-Seite verwenden, wie Sie in der obigen HTML-Quelle sehen können. Ich denke daran, asynchrone Übermittlung mit XHR zu versuchen. Hoffe das würde funktionieren. Vielen Dank für Ihre ausführliche Antwort. – user163970
Sie haben keine Kontrolle über das serverseitige Skript? BTW, vote und accept buttons sind die bevorzugte Art, Danke zu sagen. : o) – deceze