Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2032 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  reset manuel d'1 formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

reset manuel d'1 formulaire

n°1389405
nioubizz
Posté le 16-06-2006 à 21:21:35  profilanswer
 

hi!
 
j'voulais afficher une boite de dialogue confirm lors d'un clic sur le Reset d'un formulaire
 
mais je ne sais pas comment court circuiter la fonction de reset pour intercaler ma fontion.
 
c'est possible?
 
 
à défaut, j ai remplacé le reset par un bouton classique et j'appelle ma propre fonction de reset sur un onclick,
oui mais voila, je n'arrive pas à réinitialiser les champs en faisant monform.montexte.value=""
qu'est qu il faut faire pour réinitialiser les champs à la mano?


Message édité par nioubizz le 16-06-2006 à 21:54:05
mood
Publicité
Posté le 16-06-2006 à 21:21:35  profilanswer
 

n°1389434
nargy
Posté le 16-06-2006 à 22:39:59  profilanswer
 

tiens, j'ai jamais testé... mais théoriquement, tu peut utiliser un bouton reset, avec:

Code :
  1. onclick="javascript: return !window.confirm('Confirmez-vous la réinitialisation?');"


Sinon, c'est document.monform.monchamps.value.

n°1389447
afbilou
pouet your life
Posté le 16-06-2006 à 23:05:54  profilanswer
 

Une solution actuelle et propre (clin d'oeil au code de nargy) :

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  3. <head>
  4. <title>Test</title>
  5. <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
  6. <script type="text/javascript">
  7.  window.onload = function () {
  8.   confirmReset();
  9.  }
  10.  function confirmReset() {
  11.   var inputs = document.getElementsByTagName('input');
  12.   for (var i=0 ; i<inputs.length ; i++)
  13.   {
  14.    if (inputs[i].type == "reset" )
  15.    {
  16.     inputs[i].onclick = function() {
  17.      return confirm("Confirmation ?" );
  18.     }
  19.    }
  20.   }
  21.  }
  22. </script>
  23. </head>
  24. <body>
  25. <h1>Confirmation reset</h1>
  26. <form>
  27.  <input type="text" />
  28.  <input type="reset" />
  29. </form>
  30. </body>
  31. </html>

n°1389466
nargy
Posté le 16-06-2006 à 23:29:06  profilanswer
 

En fait, j'avais de toutes façon fait une erreur:
!window.confirm
 
...et mon code reste beaucoup plus léger ;)
 
Tant qu'a faire, à ce propos, mettre le script dans un fichier séparé.

n°1389474
gatsu35
Blablaté par Harko
Posté le 16-06-2006 à 23:35:37  profilanswer
 

nargy a écrit :

En fait, j'avais de toutes façon fait une erreur:
!window.confirm
 
...et mon code reste beaucoup plus léger ;)
 
Tant qu'a faire, à ce propos, mettre le script dans un fichier séparé.


 
ouais mais ton JS a quelques défauts :  
javascript: == ca sert à rien de le rajouter, lors d'un appel à un évenement sur un élément on sait très bien que c'est du JS et pas du caca
ensuite afbilou rajoute le JS dynamiquement, comme ça, pas besoin de le mettre à chaque fois sur le bouton et si tu n'as pas JS activé c'est pas un soucis (quoi que tu me diras, dans ton cas ça ne pose pas de problème [:petrus75];

n°1389485
afbilou
pouet your life
Posté le 16-06-2006 à 23:58:43  profilanswer
 

Pas plus léger ... plus court ! Et encore ... plus court ... mais ... quand même BIEN plus long à mettre en place puisqu'il te faut editer chaque element reset dans chaque fichier du site :s
 
Et puis ... mettre à jour ton code "plus léger" est un enfer sans nom ... :s

n°1390051
nioubizz
Posté le 18-06-2006 à 17:32:37  profilanswer
 

nargy a écrit :

tiens, j'ai jamais testé... mais théoriquement, tu peut utiliser un bouton reset, avec:

Code :
  1. onclick="javascript: return window.confirm('Confirmez-vous la réinitialisation?');"


Sinon, c'est document.monform.monchamps.value.


 
ouep pour la syntaxe en fait j avais fait un getelementbyid avant ;)
 
ça etre bien strange: ton onclick fonctionne mais avec un onmouseup ça marche pas!
 
j avais testé aussi en faisant onclick="confirme();" dans le reset
avec

Code :
  1. function confirme() {
  2. return confirm("poursuivre?" );
  3. }


sais pas où est la boulette, mais dans ce dernier cas: ça init le formulaire quelquesoit la réponse... yé fait une boulette?


Message édité par nioubizz le 18-06-2006 à 17:34:19
n°1390061
nargy
Posté le 18-06-2006 à 17:43:35  profilanswer
 

[:ouais2] ouais, tu as oublié le return dans le onclick!!!
 
Pour le onmouseUp, c'est tout à fait normal que ça marche pas. C'est le sur onclick qu'il faut retourner vrai ou faux pour indiquer au navigateur de traiter ou pas l'évènement. Si tu fait sur le mouseUp, tu doit mettre une variable à part avec le résultat du confirm(), et retourner cette variable dans le onclick.
T'a suivi?
 
Edit: la gestion d'évènements javascript ne s'arrête pas à ton code, mais se poursuit dans les autres éléments HTML, il y a une thread qqpart avec des explications plus complètes sur la manière dont les évènements sont gérés dans un navigateur.

Message cité 1 fois
Message édité par nargy le 18-06-2006 à 17:45:38
n°1390065
nioubizz
Posté le 18-06-2006 à 17:45:36  profilanswer
 

nargy a écrit :

[:ouais2] ouais, tu as oublié le return dans le onclick!!!
 
Pour le onmouseUp, c'est tout à fait normal que ça marche pas. C'est le sur onclick qu'il faut retourner vrai ou faux pour indiquer au navigateur de traiter ou pas l'évènement. Si tu fait sur le mouseUp, tu doit mettre une variable à part avec le résultat du confirm(), et retourner cette variable dans le onclick.
T'a suivi?
 
Edit: la gestion d'évènements javascript ne s'arrête pas à ton code, mais se poursuit dans les autres éléments HTML, il y a une thread qqpart avec des explictions plus complètes sur la manière dont les évènements sont gérés dans un navigateur.


oui pour l oubli du return j ai suivi , pour le onmouseup un peu moins

n°1390069
nargy
Posté le 18-06-2006 à 17:50:41  profilanswer
 

kk
le navigateur traite les évènement dans cet ordre:
onmouseDown, onmouseMove, onmouseUp, onClick, onDblClick
 
À chaque évènement, il y a déjà de base un évènement associé.
Par exemple, pour un bouton reset, c'est sur le onClick qu'est associée l'action de Reset du formulaire.
 
Par contre, le onmouseUp du bouton reset, il n'y a rien d'associé (à part, théoriquement mais c'est pas implémenté il me semble, le changement de bordure du bouton pressé -> relevé).
 
Donc, retourner false dans le onmouseUp ne sert à rien, c'est dan onClick qu'il faut retourner qqchose.
 
Comme mouseUp est appelé avant mouseClick, tu peut ranger le résultat du confirm() dans une variable globale. Puis, le onClick sera appelé juste après le onmouseUp, et tu pourra retourner la valeur de cette variable globale, pour indiquer si oui ou non il faut que le navigateur execute la fonction par défaut associé au bouton.
 
PS: de toutes façon, dans ton cas, c'est le onClick qui t'interesse.


Message édité par nargy le 18-06-2006 à 17:53:19
mood
Publicité
Posté le 18-06-2006 à 17:50:41  profilanswer
 

n°1390086
nioubizz
Posté le 18-06-2006 à 18:00:48  profilanswer
 

ok hyper clair  :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  reset manuel d'1 formulaire

 

Sujets relatifs
formulaire et fieldsetformulaire pour popup Google
[Javascript / DOM (?)] Renommer un element de formulaireTransmettre une variable d'un popup à un formulaire ?
envoyer un formulaire dans un formulaire...formulaire HTML sans script CGI
Formulaireformulaire et popup
[HTML]Formulairequestionnaire & formulaire
Plus de sujets relatifs à : reset manuel d'1 formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR