Comment déterminez-vous quelle soumission a été utilisée pour soumettre un formulaire avec jQuery?

Gardez à l’esprit que l’utilisateur ne doit PAS cliquer sur le lien d’envoi. Ils pourraient taper dessus et pousser entrer.

Donc, en considérant tous les moyens par lesquels un formulaire peut être soumis, comment pouvez-vous déterminer lequel a été utilisé pour soumettre le formulaire dans l’événement submit. J’ai des noms différents sur les deux éléments de soumission.

Toute action déclenchant un bouton d’envoi, qu’il s’agisse d’un clic de souris ou d’une action au clavier, déclenche tout de même un événement “clic” tout en permettant d’inclure l’entrée en tant que paramètre de formulaire.

Autrement dit, si vous voyez un paramètre de formulaire avec le nom et la valeur de votre champ de saisie, vous savez que le bouton d’envoi a été cliqué.

edit – si le formulaire est soumis parce que vous avez appuyé sur “Entrée” dans un champ de texte, le navigateur sélectionne le premier bouton d’envoi (je pense; cela semble être ce que Firefox fait au moins). (Attendez, grattez ça; Firefox semble trouver la prochaine entrée “submit” après l’élément qui avait le focus lorsque “Enter” a été pressé …)

Ainsi:

Si vous appuyez sur “Entrée” dans le champ de texte, “submit1 = submit1” sera un paramètre de formulaire, tout comme si vous appuyiez sur “Entrée” lorsque “submit1” avait le focus. Si vous appuyez sur “submit2” et appuyez sur “Entrée”, “submit2 = submit2” sera parmi les parameters.

Dans les deux cas, une seule des entrées “submit” apparaît dans la liste des parameters.

Au lieu d’utiliser des noms différents, utilisez des valeurs différentes, par exemple:

   

Vous pouvez également utiliser des boutons au lieu d’entrées si vous souhaitez que les étiquettes soient différentes des valeurs.