Le name du bouton submit empêche la soumission du formulaire en JS #145

Closed
opened 6 months ago by tcharlss · 13 comments
Owner

Dans inc-saisies-cvt-boutons.html, le name du bouton de soumission est submit :

<button type="submit" class="submit[(#ENV{_etapes}|oui) submit__suivant]" name="submit" value="1">[(#GET{label_valider}|_T_ou_typo)]</button>

Or ce nom empêche de soumettre le formulaire en JS avec la fonction jQuery .submit(), cf. commentaire sur stack :

The NUMBER ONE error is having ANYTHING with the reserved word submit as ID or NAME in your form.

C'est problématique, Spip s'en sert par exemple pour soumettre le formulaire quand on utilise refuser_traiter_formulaire_ajax() dans le traiter.

Bug constaté via Profils/#10

Dans [inc-saisies-cvt-boutons.html](https://git.spip.net/spip-contrib-extensions/saisies/src/branch/master/formulaires/inc-saisies-cvt-boutons.html#L10), le name du bouton de soumission est `submit` : ```html <button type="submit" class="submit[(#ENV{_etapes}|oui) submit__suivant]" name="submit" value="1">[(#GET{label_valider}|_T_ou_typo)]</button> ``` Or ce nom empêche de soumettre le formulaire en JS avec la fonction jQuery [`.submit()`](https://api.jquery.com/submit/), cf. commentaire sur [stack](https://stackoverflow.com/a/22982900) : > The NUMBER ONE error is having ANYTHING with the reserved word submit as ID or NAME in your form. C'est problématique, Spip s'en sert par exemple pour soumettre le formulaire quand on utilise `refuser_traiter_formulaire_ajax()` dans le traiter. Bug constaté via [Profils/#10](https://git.spip.net/spip-contrib-extensions/profils/issues/10)
Owner

Et le commit qui a introduit ça est donc
5a9efba9db

(parce que bon, ça marchait bien jusqu'ici...)

Et le commit qui a introduit ça est donc https://git.spip.net/spip-contrib-extensions/saisies/commit/5a9efba9dbb41d446d77127f3c6c8db5046df9f4 (parce que bon, ça marchait bien jusqu'ici...)
tcharlss changed title from Le name du bouton submit empêche la soumission du formulaire en ajax to Le name du bouton submit empêche la soumission du formulaire en JS 6 months ago
Owner

Et le plugin est donc buggé depuis la version 3.53.2 ?

Et le plugin est donc buggé depuis la version 3.53.2 ?
Collaborator

Ah ! J'ignorais (mais notez que c'était soumis à PR ces modifs). Du coup il faudrait quoi comme name ?

Ah ! J'ignorais (mais notez que c'était soumis à PR ces modifs). Du coup il faudrait quoi comme name ?
Poster
Owner

Avant il n'y avait pas de name, l'ajout de l'attribut répondait à un besoin précis ? C'est pour différencier dans le traiter si éventuellement il y a plusieurs boutons de soumission dans le formulaire (valider, annuler, etc.) ?

Dans cas cas il faudrait un nom signifiant que c'est le bouton de soumission par défaut. J'ai pas trop d'idée : spip_submit, defaut_submit, ou autre.

Remarque faudrait la même chose dans tous les formulaires dans ce cas, faudrait peut-être décider dans le core, puisque nicod_ proposait aussi de remplacer les input par des button : spip/spip#4604

Avant il n'y avait pas de name, l'ajout de l'attribut répondait à un besoin précis ? C'est pour différencier dans le traiter si éventuellement il y a plusieurs boutons de soumission dans le formulaire (valider, annuler, etc.) ? Dans cas cas il faudrait un nom signifiant que c'est le bouton de soumission par défaut. J'ai pas trop d'idée : `spip_submit`, `defaut_submit`, ou autre. Remarque faudrait la même chose dans tous les formulaires dans ce cas, faudrait peut-être décider dans le core, puisque nicod_ proposait aussi de remplacer les input par des button : https://git.spip.net/spip/spip/issues/4604
Poster
Owner

Ou alors plus simplement : pas de name sur le bouton de soumission par défaut.
On en ajoute uniquement sur les autres boutons éventuels.

Ou alors plus simplement : pas de name sur le bouton de soumission par défaut. On en ajoute uniquement sur les autres boutons éventuels.

Pour l'instant je trouve aussi que le bouton de soumission par défaut ne devrait pas avoir de name. Normalement il n'y a pas à le distinguer, c'est l'action qui vaut aussi quand on fait "Entrée" dans un champ. C'est seulement quand on fait une autre action particulière qu'il faut la distinguer.

Pour l'instant je trouve aussi que le bouton de soumission par défaut ne devrait pas avoir de name. Normalement il n'y a pas à le distinguer, c'est l'action qui vaut aussi quand on fait "Entrée" dans un champ. C'est seulement quand on fait une autre action particulière qu'il faut la distinguer.
Collaborator

Oui, le name est là pour distinguer d'autres boutons (notamment des boutons d'etapes). Donc oui, prenons une autre convention (et verifions tout de même si le renommage ne casse pas des choses en multietape)

Oui, le name est là pour distinguer d'autres boutons (notamment des boutons d'etapes). Donc oui, prenons une autre convention (et verifions tout de même si le renommage ne casse pas des choses en multietape)
Collaborator

ah bah j'ai pas vu les remarques de @tcharlss et @rastapopoulos . Moi ca me va a priori de pas avoir de name.

ah bah j'ai pas vu les remarques de @tcharlss et @rastapopoulos . Moi ca me va _a priori_ de pas avoir de name.
Collaborator

Donc on le vire ? Ca me pete mon formulaire la.

Donc on le vire ? Ca me pete mon formulaire la.
Poster
Owner

Je veux bien m'en occuper parceque j'ai pas mal de formulaires qui font la tête, faut régler ça rapidement :)

@maieul : il faut vérifier que ça casse rien pour les formulaires par étapes, c'est ça ? Il y aurait d'autres choses à vérifier à part ça ?

Je veux bien m'en occuper parceque j'ai pas mal de formulaires qui font la tête, faut régler ça rapidement :) @maieul : il faut vérifier que ça casse rien pour les formulaires par étapes, c'est ça ? Il y aurait d'autres choses à vérifier à part ça ?
Collaborator

@tcharlss non rien d'autre à vérifier.

@tcharlss non rien d'autre à vérifier.
Poster
Owner

Bon c'est pas un gros changement, mais PR quand même : !146

(bizarre le diff surligne mal le retrait du name)

Bon c'est pas un gros changement, mais PR quand même : !146 (bizarre le diff surligne mal le retrait du name)
Poster
Owner

J'ai mergé la PR et releasé (v4.0.4 + v3.54.9)
Je ferme.

J'ai mergé la PR et releasé (v4.0.4 + v3.54.9) Je ferme.
tcharlss closed this issue 5 months ago
Sign in to join this conversation.
No Milestone
No Assignees
5 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.