Est-il possible de modifier les données du formulaire avant de l’envoyer?

J’aimerais trouver une méthode générique pour modifier les données avant d’envoyer des formulaires. C’est-à-dire que si j’ai un

qui contient une d’un certain type (classe) et que l’utilisateur appuie sur le bouton d’ envoi , j’aimerais transformer cette valeur d’entrée en un autre format afin qu’elle parvienne au serveur dans un format corrigé.

Je sais que je peux définir un gestionnaire submit () pour traiter les données, mais j’ai besoin d’une solution générique qui configure ce mécanisme au chargement sur tous les formulaires de page et l’oublie (peut-être que certains formulaires sont envoyés par AJAX, d’autres utilisent Jquery.validate pour envoyer , etc)

Utilisez jQuery pour sélectionner tous les éléments de formulaire: $('form') et enregistrez un gestionnaire pour l’événement de submit formulaire. Quelque chose comme ça:

 $('form').submit(function(e){ e.preventDefault() var $this = $(this) var formData = $this.serialize() // do some thing to it var yourData = transform(formData) $.ajax({ post: $this.attr('action'), data: yourData, ... }) }) 

Références

  • soumettre()
  • jQuery CSS Selector
  • Form sérialiser ()

Peut-être que cela

 $(document).ready(function() { $("form").on("submit",function() { var form = $(this); var field = form.find("input[name=first_name]"); if (field.length()>0) field.val(field.val().replace("a","b")); }); }); 

Oui pourquoi pas?

Avoir un onclick sur le bouton de soumission de formulaire et là, vous pouvez faire ce que vous voulez avant d’appeler submit (). Pour append une même fonction à toutes les soumissions de type d’entrée, parcourez tous les éléments d’entrée avec les boutons type = et ajoutez-y votre fonction de gestionnaire onclick.

Tous vos formulaires doivent être du même type, ou si certains utilisent input type = submit alors que d’autres utilisent un élément de bouton avec votre propre javascript, vous devrez vous adapter à cela.