OVH Cloud OVH Cloud

OnSubmit + plusieurs boutons submit

16 réponses
Avatar
Yttrium
Bonjour,

J'ai un formulaire, qui contient plusieurs boutons submit.
Ce formulaire possède un OnSubmit:

<form action='toto.php' ...onSubmit='return toto()'>
<input type='submit' name='sub1' value='sub1Val'>
<input type='submit' name='sub2' value='sub2Val'>
</form>

Tout fonctionne correctmenet, mais je voudrais pouvoir dans la fonction
qui est appellée par mon onSubmit, savoir quel bouton a été cliqué..

Une idée ?

Merci d'avance.

Salutations.



--
[- Yttrium - http://www.danstesyeux.com -]
Le temps ne fait rien à l'affaire, quand on est con...
on est con...

10 réponses

1 2
Avatar
ASM
Bonjour,

J'ai un formulaire, qui contient plusieurs boutons submit.
Ce formulaire possède un OnSubmit:

<form action='toto.php' ...onSubmit='return toto()'>
<input type='submit' name='sub1' value='sub1Val'>
<input type='submit' name='sub2' value='sub2Val'>
</form>

Tout fonctionne correctmenet, mais je voudrais pouvoir dans la fonction
qui est appellée par mon onSubmit, savoir quel bouton a été cliqué..



tu leurs donnes tout bêtement à *tous le même nom* !

seul celui cliqué renvoie sa value au html (et donc au php)
tu n'en n'as pas besoin pour le JS


onSubmit='alert(what.value);'>
<input type='submit' name='sub' value='sub1Val' onclick="what=this">
<input type='submit' name='sub' value='sub2Val' onclick="what=this">

Avatar
Olivier Miakinen

<form action='toto.php' ...onSubmit='return toto()'>
<input type='submit' name='sub1' value='sub1Val'>
<input type='submit' name='sub2' value='sub2Val'>
</form>

Tout fonctionne correctmenet, mais je voudrais pouvoir dans la fonction
qui est appellée par mon onSubmit, savoir quel bouton a été cliqué..

Une idée ?


Tu peux peut-être essayer, avec onclick, onmouseover, onfocus, etc., de
repérer lequel des deux boutons a été cliqué en dernier (onclick, submit
à la souris) ou mis le dernier en évidence (onfocus, submit au clavier)
mais je ne sais pas si c'est à 100 % fiable. Si ça marche, ta fonction
appelée lors du submit n'aura qu'à regarder lequel des deux boutons
s'est enregistré en dernier.

Avatar
Olivier Miakinen

onSubmit='alert(what.value);'>
<input type='submit' name='sub' value='sub1Val' onclick="what=this">
<input type='submit' name='sub' value='sub2Val' onclick="what=this">


Le onclick fonctionne aussi lors d'une sélection au clavier ?

Avatar
ASM
onSubmit='alert(what.value);'>
<input type='submit' name='sub' value='sub1Val' onclick="what=this">
<input type='submit' name='sub' value='sub2Val' onclick="what=this">


Le onclick fonctionne aussi lors d'une sélection au clavier ?


Pour savoir :
- me dire comment on navigue au clavier ?
- essayer soi-même ?


Avatar
Olivier Miakinen

Le onclick fonctionne aussi lors d'une sélection au clavier ?


Pour savoir :
- me dire comment on navigue au clavier ?


Touche <TABULATION> pour passer d'un champ ou d'un bouton à un autre.
Touche <ENTRÉE> pour soumettre avec le bouton sélectionné.

Tests possibles ici par exemple :
http://www.miakinen.net/vrac/nombres2
(mais il n'y a pas de JavaScript).

- essayer soi-même ?


J'ai un peu la flemme de rajouter du JS sur ma page, juste pour voir
si ça marche avec un navigateur ou deux.

D'autant que tu auras beau essayer sur tous les navigateurs que tu
as, et même si ça marche sur ceux-là, si ce n'est pas documenté et
normalisé quelque part tu n'auras jamais l'assurance que ça marche
sur les *autres* navigateurs.


Avatar
ASM
Le onclick fonctionne aussi lors d'une sélection au clavier ?
Pour savoir :

- me dire comment on navigue au clavier ?


Touche <TABULATION> pour passer d'un champ ou d'un bouton à un autre.


Non, chez moi ça ne tabule que de champ texte à champ texte
(et y compris le location bar ! :-( )

Touche <ENTRÉE> pour soumettre avec le bouton sélectionné.

Tests possibles ici par exemple :
http://www.miakinen.net/vrac/nombres2
(mais il n'y a pas de JavaScript).


Là j'erre de textarea 1 à textarea 2 à barre d'ardresses

je n'arrive même pas à joindre les select

D'autant que tu auras beau essayer sur tous les navigateurs que tu
as, et même si ça marche sur ceux-là, si ce n'est pas documenté et
normalisé quelque part tu n'auras jamais l'assurance que ça marche
sur les *autres* navigateurs.


Ben déjà que ça n'marche pô tout simplement,
la chose est entendue et vite vue.

à moter : tests sur FireFox Mac, et ...
- control + tab -> fonction de FF (changer d'onglet)
- Alt + tab -> fonction système (changer d'application)

Remarque :
avec IE, Opera, (mais pas Safari qui fait comme Fx)
qui eux acceptent de tabuler normalement
-> oui le onclick du bouton fonctionne



Avatar
Olivier Miakinen

Pour savoir :
- me dire comment on navigue au clavier ?


Touche <TABULATION> pour passer d'un champ ou d'un bouton à un autre.


Non, chez moi ça ne tabule que de champ texte à champ texte
(et y compris le location bar ! :-( )

Touche <ENTRÉE> pour soumettre avec le bouton sélectionné.

Tests possibles ici par exemple :
http://www.miakinen.net/vrac/nombres2
(mais il n'y a pas de JavaScript).


Là j'erre de textarea 1 à textarea 2 à barre d'ardresses

je n'arrive même pas à joindre les select


Pas de bol. Pour moi, que ce soit avec Mozilla, avec Firefox, ou même
avec Internet Explorer, je peux utiliser Tab et Shift+Tab pour me
balader partout dans la page (y compris sur les trois liens du bas),
les flèches haut et bas pour changer d'option dans les select, et la
touche Entrée pour lancer l'un des trois boutons Submit ou pour suivre
l'un des trois liens.

En fait, la seule différence entre les navigateurs, c'est que cet
imbécile d'IE ne veut pas croire le serveur qui lui dit que les liens
source/nel.php et source/nec.php sont en "text/plain".

D'autant que tu auras beau essayer sur tous les navigateurs que tu
as, et même si ça marche sur ceux-là, si ce n'est pas documenté et
normalisé quelque part tu n'auras jamais l'assurance que ça marche
sur les *autres* navigateurs.


Ben déjà que ça n'marche pô tout simplement,
la chose est entendue et vite vue.


Vite vue dans le sens où, si tu ne peux pas tester la navigation au
clavier, tu ne peux pas savoir comment se comporte le onclick sur les
systèmes autres que le tien.

Remarque :
avec IE, Opera, (mais pas Safari qui fait comme Fx)
qui eux acceptent de tabuler normalement
-> oui le onclick du bouton fonctionne


C'est une bonne nouvelle. Mais est-ce suffisamment standard pour que ça
reste valable avec d'autres navigateurs sur d'autres systèmes ? Tu as
une page accessible où je pourrais faire l'essai au moins sur les trois
navigateurs dont je dispose ?



Avatar
ASM

-> oui le onclick du bouton fonctionne


C'est une bonne nouvelle. Mais est-ce suffisamment standard pour que ça
reste valable avec d'autres navigateurs sur d'autres systèmes ?


Je ne vois pas pourquoi ce ne serait pas standard ?
Si le JS est actif
Si le return sur bouton sélectionné = clic sur bouton
--> button.click() --> button.onclick="faire()"

Tu as
une page accessible où je pourrais faire l'essai au moins sur les trois
navigateurs dont je dispose ?


http://stephane.moriaux.perso.orange.fr/truc/names_form
Brouillon que j'ai tabinxé pour les inputs les + fonctionnels

Quant à ce Fx, plus il y a de MàJ moins il fonctionne :-(
A côté Opera est presqu'un régal.


--
ASM


Avatar
Olivier Miakinen

-> oui le onclick du bouton fonctionne


C'est une bonne nouvelle. Mais est-ce suffisamment standard pour que ça
reste valable avec d'autres navigateurs sur d'autres systèmes ?


Je ne vois pas pourquoi ce ne serait pas standard ?
Si le JS est actif
Si le return sur bouton sélectionné = clic sur bouton
--> button.click() --> button.onclick="faire()"


C'est assez convaincant, si l'on suppose qu'appuyer sur la touche Entrée
peut être assimilé à un clic du moment que c'est sur un contrôle de type
bouton.

Tu as
une page accessible où je pourrais faire l'essai au moins sur les trois
navigateurs dont je dispose ?


http://stephane.moriaux.perso.orange.fr/truc/names_form
Brouillon que j'ai tabinxé pour les inputs les + fonctionnels


Ça fonctionne sur les trois navigateurs (Moz, FF et IE). Il y a juste un
truc qui ne marche pas, mais qui n'a rien à voir avec la choucroute,
c'est le history.go.back() pour revenir à la page précédente. Ça ne
marche pas plus avec la souris qu'avec le clavier, d'ailleurs.



Avatar
ASM
http://stephane.moriaux.perso.orange.fr/truc/names_form
Brouillon que j'ai tabinxé pour les inputs les + fonctionnels


Ça fonctionne sur les trois navigateurs (Moz, FF et IE). Il y a juste un
truc qui ne marche pas, mais qui n'a rien à voir avec la choucroute,
c'est le history.go.back() pour revenir à la page précédente. Ça ne
marche pas plus avec la souris qu'avec le clavier, d'ailleurs.


Bon, ça fonctionne bien que ce fut brouillonné à souhait (avec les
godasses de ski) (c'est un peu amélioré maintenant).

Il n'y a pas de go back sur cette page ... ? !

Les submit appellent un fichier à tout faire (pour tests de variables
envoyées essentiellement) qui dispose d'un truc-bidule en JS pour
déterminer s'il affiche un bouton 'Retour' ou un bouton 'Fermer'.
Chez moi, pour cet essai, c'est touj le lien 'Fermer'.
Possiblement que IE se mélange les pinceaux (entre opener et referrer) ?

--
ASM


1 2