Comment obtenir une clé/valeur de l'ensemble de données à partir d'un formulaire HTML

Je suis simplement à la recherche d'un moyen de obtenir toutes les valeurs à partir d'un <form>.

J'ai cherché sur le Web pour un certain temps, de tomber sur FormData, ce qui semble tout à fait ce que je cherche.

Cependant son API est pas disponible sur n'importe quel navigateur, j'ai donc besoin d'une alternative.


Ce dont j'ai besoin dans mon cas précis est un objet de paires clé/valeur. Par exemple:

<form>
  <input type="text" name="firstname" value="John" />
  <input type="text" name="surname" value="doe" />
  <input type="email" name="email" value="" />
  <input type="radio" name="gender" value="male" />
  <input type="radio" name="gender" value="female" />
</form>

L'objet doit être:

{
  firstname: "John",
  surname: "doe",
  email: "",
  gender: ""
}

Edit: ci-dessus est juste un exemple, il devrait fonctionner non seulement avec <input> mais aussi avec les autres balises (par exemple,<select>, <textarea> et ainsi de suite... même <input type="file"> doit être pris en charge).

  • quand vous dites "même <input type="file"> doit être pris en charge" qu'attendez-vous de la sortie? Vous attendez-vous la totalité du contenu d'un gigantesque fichier doit être sérialisé comme une chaîne de caractères? Attendez-vous d'un objet de référence qui peut être utilisé pour lire le fichier? Vous attendez-vous la valeur réelle du champ (qui est juste un aseptisé nom du fichier)?
  • aussi, votre sortie attendue ne tient pas compte de plusieurs éléments de formulaire avec le même nom ou de ce qui se passe lorsque vous utilisez <select multiple>.
  • accepteriez-vous d'ajouter un peu de HTML supplémentaire comme method et action des attributs à votre form et invisible iframe?
InformationsquelleAutor Simone | 2015-06-21