J'ai plusieurs formulaires (l'utilisateur peut ajouter un nouveau formulaire dynamiquement) dans une page, ils sont tous soumis à la même action struts2. Je dois soumettre tous ces formulaires lorsque l'utilisateur clique sur le bouton Enregistrer.
Tout va bien dans FF. Mais dans IE et Google Chrome, seul le dernier formulaire est soumis.Soumission de formulaires multiples dans IE et Google Chrome
Toute aide est appréciée. Je vous remercie.
Les éléments de chaque formulaire sont les mêmes, un formulaire un objet. Les données de chaque formulaire seront ajoutées à un objet de domaine, puis l'objet sera conservé dans DB.
fonction JavaScript pour gérer opération de sauvegarde:
<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>
...
Par "ça marche dans FF" je suppose que vous voulez dire que les données sont enregistrées dans la base de données? Vous ne recevez pas tout le contenu de toutes les formes dans la même action en une seule fois, n'est-ce pas? – deceze
Il n'y a qu'une seule action Struts nommée AddAction, les formulaires sur la page sont tous soumis à AddAction. Donc, je ne peux pas utiliser des noms de champs différents dans la page jsp comme vous pouvez le voir dans le src html ci-dessus. Je pense à essayer la soumission asynchrone en utilisant XHR. J'espère que cela fonctionnerait. Merci pour votre réponse détaillée. – user163970
Vous n'avez aucun contrôle sur le script côté serveur? BTW, voter et accepter les boutons sont la façon préférée de donner merci. : o) – deceze