fonction confirmer pour un seul submit

Répondre
Michel L
le 24/11/2006 à 12:26
Michel L
Bonjour !

J’ai un formulaire :
  1. <form id="formulaire" action="MailingEnvoyerSuite.php" method="post" name="formulaire" onSubmit="return confirmer()">

Qui contient deux boutons

  1. <input type="submit" name="bOK" value="Essais" />
  2. <input type="submit" name="bOK" value="Faire le truc" />


Je veux faire une fonction confirmer en JC qui ne fonctionne que si on clique sur le bouton submit value="Faire le truc"
Je n’y arrive pas

Voilà ce que j’ai essayé de mettre dans l’entête de la page :
  1. <SCRIPT LANGUAGE="JavaScript">
  2. function confirmer() {
  3. if (document.formulaire.bOK == "Faire le truc") {
  4. return confirm('Etes-vous sur ?');
  5. }
  6. }

  7. </SCRIPT>

Ça ne marche pas
Quelqu’un peut me conseiller ?

Merci
LupusMic
le 24/11/2006 à 13:47
LupusMic
Essaye ça :

  1. var confirmer = function(self)
  2. {
  3. if(self.elements['bOK'].value == "Faire le truc")
  4. {
  5. return confirm('Etes-vous sur ?');
  6. }
  7. }


Et dans le onsubmit (et pas onSubmit...) :
  1. return confirmer(this)
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 27/11/2006 à 11:07
LupusMic
Après quelques recherche, je suis arrivé à la conclusion suivante : on ne peut pas utiliser plusieurs contrôles de soumission.

En effet, quel est le contrôle appelé lorsque l'utilisateur frappe 'enter' ?

Bref, pour t'en sortir, il faut utiliser des contrôles de type bouton.
summon.html
  1. ...
  2. <script>
  3. var checkform = function(form)
  4. {
  5. alert('Invocation !')
  6. }

  7. var summon = function(button)
  8. {
  9. alert('J'invoque un '+button.value.toLowerCase()+' !')
  10. button.form.submit()
  11. }

  12. </script>
  13. </head>
  14. <body>
  15. <form action='' method='get' onsubmit='checkform(this)'>
  16. <button name='summoned' value='ghost' onclick='summon(this)'>Fantôme</button>
  17. <button name='summoned' value='spirit' onclick='summon(this)'>Esprit</button>
  18. <input type='submit' name='summoner' value='Invocation'/>
  19. </form>
  20. </body>
  21. </html>
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Michel L
le 28/11/2006 à 08:52
Michel L
Merci beaucoup pour ton aide.
Mais voilà ce qu'un gars ma donné sur editeurjavascript :

  1. <head>
  2. <SCRIPT type="text/javaScript">
  3. function confirmer() {
  4. if (document.getElementById('alerte').value=='1')
  5. return confirm('Etes-vous sûr(e) ?');
  6. else
  7. return true;
  8. }
  9. </SCRIPT>
  10. </head>
  11. <body >
  12. <form id="formulaire" action="PeuImporte.php" method="post" name="formulaire" onsubmit="return confirmer(this);">
  13. <input type="hidden" id="alerte" value="0">
  14. <p> <input type="submit" name="bOK" value="Avec alerte" onClick="document.getElementById('alerte').value='1';"/></p>
  15. <p> <input type="submit" name="bOK2" value="Sans alerte" onClick="document.getElementById('alerte').value='0';"/> </p>
  16. </form>
  17. </body>


ça marche impec !!
LupusMic
le 28/11/2006 à 18:41
LupusMic
Le problème est que cette solution n'est pas déterministe. C'est à dire qu'on ne sait pas ce qu'il se passe si on tappe sur entré pour valider.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Michel L
le 04/12/2006 à 18:24
Michel L
Il ne se passe rien.
Il faut cliquer

Ça sert a soit faire un essais
soit le faire pour de bon

exemple :
envoyer un mail à une adresse d'essais
ou
envoyer le même mail à n destinaire
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours