Je suis en train d'écrire un javascript (un greasemonkey/userscript) qui va insérer des champs de saisie dans un formulaire sur un site web.
Le problème est que je ne veux pas que ces champs de saisie affectent le formulaire de quelque manière que ce soit, je ne veux pas qu'ils soient soumis lorsque le formulaire est soumis, je veux seulement que mon javascript ait accès à leurs valeurs.
Existe-t-il un moyen d'ajouter des champs de saisie au milieu d'un formulaire et de ne pas les soumettre lors de l'envoi du formulaire ?
L'idéal serait évidemment que les champs de saisie ne se trouvent pas dans l'élément de formulaire, mais je veux que la mise en page de ma page résultante fasse apparaître les champs de saisie insérés entre les éléments du formulaire original.
2 votes
Quel est le problème s'ils sont soumis ? Vous pouvez choisir les champs à traiter dans le langage côté serveur.
7 votes
Je ne crois pas que les éléments de formulaire sans nom s'affichent lorsqu'un formulaire est soumis. Si vous pouvez écrire votre JS pour qu'il se réfère à eux par ID, vous pouvez laisser leurs noms vides, ce qui les empêche effectivement de se soumettre.
4 votes
Laissez le champ de l'attribut nom vide
0 votes
@Sarfraz Ahmed : J'écris un script greasemonkey, donc je n'ai aucun contrôle sur le site web.
11 votes
Selon le w3 : Pour être inclus dans la soumission d'un formulaire, un champ (élément de formulaire) doit être défini dans l'élément de formulaire et doit avoir un attribut de nom. Les éléments sans nom, ou non contenus dans le formulaire, ne sont pas soumis au serveur.
0 votes
@kennebec : Merci, cela répond à une question que je me posais ailleurs. Il est bon de savoir que l'omission du nom fait partie de la norme et qu'il ne s'agit pas d'une simple bizarrerie de mise en œuvre.
0 votes
Malheureusement, si vous utilisez le javascript pour supprimer l'élément name d'un événement de soumission, il semble être toujours inclus dans la soumission par IE :(
0 votes
@kennebec, Qu'en est-il de l'ordre lorsqu'il y a des éléments qui partagent le mismo nom ?