Page 1 sur 2

fonction confirm(), comment recupérer le choix du user

Posté : 27 févr. 2006, 19:52
par Snoops
Bonsoir,

J'ai ajouté cette commande à un bouton "submit" :

Code : Tout sélectionner

ONCLICK='javascript:confirm(\"Etes-vous sûr de vouloir clore la demande?\")'
Comment puis-je récupérer la valeur du bouton ("OK", "Annuler") sur lequel l'utilisateur à cliqué ?

Merci

Posté : 27 févr. 2006, 21:11
par Cyrano
Il faudrait que tu mettes le confirm() dans une fonction qui retourne true ou false selon le bouton cliqué et que tu appelles la fonction dans le onclick en faisant :

Code : Tout sélectionner

onclick="return ta_fonction();"

Posté : 28 févr. 2006, 12:48
par Snoops
J'ai compris la facon de faire, mais je suis plus php que javascript ... donc je ne sais pas comment on distingue le clic sur le "ok" du confirm(), du clic sur le "Annuler".
Donc si vous pouviez m'aider merci. Ou juste m'aiguiller d'avantage.
Merci d'avance.

Posté : 28 févr. 2006, 13:39
par zeus
La fonction confirm retourne TRUE si l'utilsiateur à cliqué sur "OK" et FALSE si l'utilisateur à cliqué sur "Annuler"

Code : Tout sélectionner

if (confirm("Tu es sûr ?")) { alert("Tu as cliqué sur OK"); } else { alert("Tu as cliqué sur ANNULER"); }

Posté : 28 févr. 2006, 17:30
par Invité
La fonction confirm retourne TRUE si l'utilsiateur à cliqué sur "OK" et FALSE si l'utilisateur à cliqué sur "Annuler"

Code : Tout sélectionner

if (confirm("Tu es sûr ?")) { alert("Tu as cliqué sur OK"); } else { alert("Tu as cliqué sur ANNULER"); }
Très bien je te remercie.
Par contre puis-je abuser de votre précieux temps?
Je voudrais juste que lorsqu'il clic sur annuler rien ne bouge (il reste sur la meme page avec les meme options de cochées) et s'il clic sur ok, que cela est pour effet de valider mon formulaire en cours tout comme un bouton submit normal.

Thank's.

Posté : 28 févr. 2006, 17:35
par Truc
un mix des 2 propositions:
if (confirm("Tu es sûr ?")) 
   return true;
else 
   return false;

Posté : 28 févr. 2006, 20:28
par Snoops
Je dois paraitre tres bete, désolé, mais je n'arrive pas a comprendre comment la valeur de true ou de false m'aide a soumettre ou non le formulaire...

Code : Tout sélectionner

<javascript> function confirmation() { if (confirm("Tu es sûr ?")) return true; else return false; } </javascript> ... <FORM ..> ... <INPUT TYPE='submit' NAME='valider' VALUE='Confirmer' ONCLICK='javascript:confirmation()'> </FORM>
Comment cela peut-il fonctionner ???

Désolé :oops:

Est-ce que, que je clic sur annuler ou ok il me valide mon formulaire tout le temps et après je dois tester la valeur de $valider qui sera égale à false ou true?

Posté : 28 févr. 2006, 21:19
par starkeus
Moi je dirai plutot ça:
<form action="" method="post" onSubmit="return confirm ('Tu es sur?');" >
<input .... etc />
Explication: s'il dit oui alors le formulaire est envoyé, s'il fait annuler alors rien n'est envoyé et il reste sur la page.

Posté : 28 févr. 2006, 21:45
par naholyr
Le truc qu'il n'a pas compris c'est peut-être ça justement ^^
Une convention impose que si un évènement javascript retourne une valeur, et que cette valeur est fausse, alors l'action "par défaut" de l'objet n'est pas prise en compte.

Exemple : <a href="http://www.google.fr" onclick="return false">clique ici pour voir</a> n'aura aucun effet si l'utilisateur clique sur le lien (on annule l'effet par défaut du lien).
Idem avec un "onsubmit="return false", qui annule l'effet par défaut du bouton, donc la soumission du formulaire.

Posté : 28 févr. 2006, 22:16
par Snoops
Moi je dirai plutot ça:
<form action="" method="post" onSubmit="return confirm ('Tu es sur?');" >
<input .... etc />
Explication: s'il dit oui alors le formulaire est envoyé, s'il fait annuler alors rien n'est envoyé et il reste sur la page.
Ok mais le problème c'est que j'ai plusieurs bouton "submit" qui me permettent soit d'imprimer la page soit de clore la demande soit de faire une simple mise a jour.
Et moi ce qui m'interesse c'est dans le cas ou il veut clore la demande, juste verifier qu'il est bien sur de son choix...
Donc je ne pense pas que le "onSubmit=..." fonctionnerait dans ce cas. Si?

Posté : 28 févr. 2006, 22:17
par Snoops
Le truc qu'il n'a pas compris c'est peut-être ça justement ^^
Une convention impose que si un évènement javascript retourne une valeur, et que cette valeur est fausse, alors l'action "par défaut" de l'objet n'est pas prise en compte.

Exemple : <a href="http://www.google.fr" onclick="return false">clique ici pour voir</a> n'aura aucun effet si l'utilisateur clique sur le lien (on annule l'effet par défaut du lien).
Idem avec un "onsubmit="return false", qui annule l'effet par défaut du bouton, donc la soumission du formulaire.
La c'est bon je pense avoir compris. Merci pour vos explications.
Je ne met pas le résolu je test mon code demain au taf et si tout fonctionne bien je le mettrais, sinon je chercherais a approfondir mes connaissances et si toujours rien je reviens vous voir.
Merci beaucoup.

Posté : 01 mars 2006, 10:21
par starkeus
Ok mais le problème c'est que j'ai plusieurs bouton "submit" qui me permettent soit d'imprimer la page soit de clore la demande soit de faire une simple mise a jour.
Et moi ce qui m'interesse c'est dans le cas ou il veut clore la demande, juste verifier qu'il est bien sur de son choix...
Donc je ne pense pas que le "onSubmit=..." fonctionnerait dans ce cas. Si?
Alors je te conseille d'utiliser de simples boutons (type="button") au lieu de boutons submit classique. Sur chaque bouton tu captes l'évènement onClick et selon le nom du bouton (par exemple), dans une fonction JS, tu lances les actions adéquates (saches que pour envoyer un formulaire tu peux faire : this.form.submit())

Posté : 01 mars 2006, 16:15
par Invité
Ok mais le problème c'est que j'ai plusieurs bouton "submit" qui me permettent soit d'imprimer la page soit de clore la demande soit de faire une simple mise a jour.
Et moi ce qui m'interesse c'est dans le cas ou il veut clore la demande, juste verifier qu'il est bien sur de son choix...
Donc je ne pense pas que le "onSubmit=..." fonctionnerait dans ce cas. Si?
Alors je te conseille d'utiliser de simples boutons (type="button") au lieu de boutons submit classique. Sur chaque bouton tu captes l'évènement onClick et selon le nom du bouton (par exemple), dans une fonction JS, tu lances les actions adéquates (saches que pour envoyer un formulaire tu peux faire : this.form.submit())
OK merci, j'ai pas encore eu le temps de tester, mais je vais faire ce que tu viens de me dire ca me parait une très bonne option.

PS : T'inquiètes dimanche à 19h on sortira la tête haute et les 3 points en poche :wink: :lol:

Posté : 01 mars 2006, 16:25
par starkeus
[HS=Foot]
[
PS : T'inquiètes dimanche à 19h on sortira la tête haute et les 3 points en poche :wink: :lol:
J'espère bien !! sinon :axe: car je vais en prendre plein la tête au boulot.
:D
PS: j'y vais moua :lol:
[/HS]

Posté : 01 mars 2006, 19:23
par Snoops
[HS=Foot]
[HS=Foot]
[
PS : T'inquiètes dimanche à 19h on sortira la tête haute et les 3 points en poche :wink: :lol:
J'espère bien !! sinon :axe: car je vais en prendre plein la tête au boulot.
:D
PS: j'y vais moua :lol:
[/HS]
Moi aussi je suis dans la merde s'il paye... :
J'ai parié avec un marseillais de mon taf (mon supérieur :P) que l'equipe qui perd paye le repas de l'autre lundi... (10€ c'est pas la mort)
Mais la où j'ai fait pire, c'est que je lui ai parié que si Paris perd, je lui paye autant de bouffe que de but d'écart ...
Je te le dis ... je suis dans la merde s'ils perdent ... HIHIHI

Moi je ne peux pas y aller :cry:
[/HS]