Peut-on avoir un formulaire à l'intérieur d'un autre formulaire? Y a-t-il un problème avec ça?
Réponses
Trop de publicités?L'imbrication de formulaires peut être réalisée avec l'attribut de formulaire des nouveaux éléments d'entrée HTML5. Bien que nous ne fassions pas de l'imbrication des formulaires structurellement, les entrées sont évaluées comme si elles étaient dans leur propre formulaire. Dans mes tests, 3 principaux navigateurs prennent en charge cela à l'exception d'IE (IE11). La limitation de l'imbrication des formulaires était un grand obstacle pour la conception d'interface utilisateur en HTML.
Voici un exemple de code, lorsque vous cliquez sur le bouton Enregistrer, vous devriez voir "2 3 success" (Original http://www.impressivewebs.com/html5-form-attribute/):
Annuler
Non. HTML interdit explicitement les formulaires imbriqués.
De la dernière mouture d'HTML 5:
Modèle de contenu : Contenu en flux, mais sans descendants d'éléments de formulaire.
De la Recommandation HTML 4.01:
(Remarquez la section -(FORM)).
Les formulaires imbriqués ne sont pas pris en charge et ne font pas partie de la norme w3c (comme beaucoup d'entre vous l'ont déclaré).
Cependant, HTML5 ajoute la prise en charge des entrées qui ne doivent pas être des descendants d'un formulaire, mais peuvent être soumises dans plusieurs formulaires - en utilisant l'attribut "form". Cela ne permet pas exactement les formulaires imbriqués, mais en utilisant cette méthode, vous pouvez simuler des formulaires imbriqués.
La valeur de l'attribut "form" doit être l'identifiant du formulaire, ou en cas de plusieurs formulaires, séparez les identifiants des formulaires par un espace.
Vous pouvez en savoir plus ici
Si vous avez un formulaire principal et que vous êtes obligé d'avoir un "formulaire dans un formulaire" Voici ce que vous pouvez faire... dans mon cas, j'avais un lien dans le globalHeader et je voulais effectuer une publication lorsqu'il était cliqué :
Exemple de publication de formulaire avec bouton de soumission de lien :
Au lieu d'un formulaire... enveloppez votre entrée dans un div :
Un lien
Fichier js :
$(document).ready(function () {
(function () {
$('#gap_form').wrap('');
})();});
Cela envelopperait tout à l'intérieur du div "gap_form" à l'intérieur d'un formulaire à la volée et le lien soumettrait ce formulaire. J'ai cet exemple exact fonctionnant sur une page maintenant... (Dans mon exemple... Vous pourriez accomplir la même chose en redirigeant vers une nouvelle page et en soumettant le formulaire sur cette page... mais j'aime mieux ça)