RÉPONSE À JOUR
Selon le commentaire:
Il a travaillé sur Firefox, mais ne fonctionne pas sur Google Chrome
Ce problème est lié au dom événement prêt. Cela ne fonctionne pas dans Firefox. J'ai testé l'extrait modifié avec les dernières versions de Chrome, FF, Edge, IE. Seulement pour FF je devais utiliser la charge d'événement au lieu de prêt.
Une solution peut être basée sur IFRAMES (si vous pouvez les utiliser):
- utiliser un bouton unique pour présenter toutes les formes
- insert ou créer un conteneur div sans visiblité
- pour chaque forme insérer dans le div précédent un iframe
- ajouter à un tel iframe le contenu du formulaire correspondant avec des données mises à jour
- soumettre chaque formulaire dans le iframe correspondant
- prendre soin de vider le réservoir ...
L'extrait:
function onIframeReady(doc, html) {
doc.find('body').append(html);
//
// if it's needed to change the action atr use:
// doc.find('form').attr('action', 'new ac');
//
doc.find('form').submit();
}
$(function() {
$('#submitMoreForms').on('click', function(e){
$('#frmWrapper').empty();
$('form').each(function(idx, ele){
$(ele).find(':input').each(function(index, element) {
if (element.type == 'textarea') {
$(element).text($(element).val());
} else {
$(element).attr('value', $(element).val());
}
});
$('<iframe>', {
id: 'frm' + idx
}).appendTo('#frmWrapper').ready(function() {
if (window.mozInnerScreenX == null) { // if not firefox
onIframeReady($('#frm' + idx).contents(), ele.outerHTML);
}
}).one('load', function(e) {
if (window.mozInnerScreenX != null) { // if firefox
onIframeReady($('#frm' + idx).contents(), ele.outerHTML);
}
});
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="action1" method="post">
FORM1:<br/>
Name: <input type="text" name="name" />
Comment: <textarea name="comment"></textarea>
<input type="checkbox" name="vehicle" value="Bike"> I have a bike
<input type="checkbox" name="vehicle" value="Car" checked> I have a car
</form>
<form action="action2" method="post">
FORM2:<br/>
Name: <input type="text" name="name" />
Comment: <textarea name="comment"></textarea>
</form>
<form action="action3" method="post">
FORM3:<br/>
Name: <input type="text" name="name" />
Comment: <textarea name="comment"></textarea>
</form>
<input id="submitMoreForms" type="button" value="Submit More Forms" />
<div id="frmWrapper" style="display: none;"></div>
Il a travaillé sur Firefox, mais ne fonctionne pas sur Google Chrome. –
@AnilSharma Réponse mise à jour. Faites-moi savoir si c'est OK .. – gaetanoM
Oui Cela a fonctionné maintenant .. merci! –