IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Fonction pour vider les champs d'un formulaire


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 101
    Points : 51
    Points
    51
    Par défaut Fonction pour vider les champs d'un formulaire
    Bonjour à tous.
    Je débute en javascript.

    J'ai créé une fonction qui est appelé par un bouton de type "reset".
    Cette fonction est censé remettre à vide tout les champs du formulaire.
    Le soucis c'est que quand je clic sur le bouton la fonction ne fait pas ce qu'elle est censé faire.

    Je précise que la fonction se trouve dans un autre fichier que celui d'où elle est appelé mais que le fichier la contenant est bien évidement inclus préalablement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    function reinitForm(page)
    {
    	switch(page)
    	{
    		case 'l' : var formID = new Array("titre", "application", "version", "description", "societe", "url", "numero", "clef", "date_achat", "nom", "mail", "notes");
    			break;
    		case 's' : var formID = new Array("titre", "utilisateur", "password", "url", "description");
    			break;
    		case 'cb' : var formID = new Array("titre", "titulaire", "numero", "date_expiration", "type_cb");
    			break;
    		case 'cp': var formID = new Array("titre", "banque_name", "numero", "type_compte");
    			break;
    	}
     
    	for(var i = 0; i < formID.length; i++)
    	{
    		document.getElementById(""+formID[i]+"").value='';
    	}
    }
    Merci d'avance pour votre aide. Bonne soirée/journée

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(formID[i]).value='';
    sufira

    tes champs ont biens des id ?
    ce sont des input text ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Les quotes doublées sont inutiles (c'est pas du webdev ici )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById(formID[i]).value='';
    sera largement suffisant

    EDIT : Spaffy : je vois que le proverbe du jour est toujours d'actualité
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 101
    Points : 51
    Points
    51
    Par défaut
    Effectivement les double quote ne servent à rien mais ca ne marche pas non plus sans. Mes input sont bien de type text sauf description et notes qui sont des textearea et ils ont bien tous des id mais suite a une recherche et des test avec un ami meilleur que moi lors de l'execution la valeur est supprimé l'affichage mais pas dans le code et une fois que la fonction a finie de s'executer le champ ré-affiche sa valeur, donc il n'est pas vidé, au final.

    S'il semblerait que le problème soit lié à un soucis entre l'interaction PHP et JS...

    Je suis un peu largué et si la chose que je veux faire est possible en PHP ca obligerait a recharger la page, a définir une variable et dans le value des input a faire un test supplémentaire pour savoir si cette variable existe ou pas et en fonction affiché une value nulle ou la value du post et repasser la vairable a false. bref ca serait assez moche et complexe pour pas grand chose.

    Peut-être que l'on se trompe et que le problème est plus simple mais je vous invite à tester par vous même : http://tibimac.com/SecretBox/index.php?p=l&action=add

    La reeinitialisation fonctionne tant que le POST n'est pas passé, après elle ne fonctionne plus. C'est de la que vient notre idée d'un soucis entre PHP et JS..

  5. #5
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Bonjour,

    J'ai fait deux tests sur votre page depuis IE7 et la réinitialisation a fonctionné avant, pendant et après les tests.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 101
    Points : 51
    Points
    51
    Par défaut
    Je viens de comprendre précisément le soucis.
    Mes input de mes formulaires sont fait ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="titre" id="titre" value="<?php if(isset($titre)){ echo $titre;} ?>"/>
    Ainsi au début, au premier affichage du formulaire la propriété value est vide et n'a pas de valeur.
    Ainsi je peut écrire dans le champs, lorsque je réinitialiserai les champs ceci reprendront leur valeur "value" qui est vide.
    Si maintenant je n'écris rien dans les champs et que je clique pour enregistrer, un message me dit de saisir mon titre qui est obligatoire et le php affiche cette fois une valeur dans value mais une valeur vide puisque je n'avait rien écrit.
    Je peux donc écrire dans les champs si je réinitialise je retrouverai à nouveau des champs vide.
    Maintenant si j'écris dans le champs, sauf le champs titre obligatoire, et que je clique pour enregistrer. La encore une erreur, et cette fois le php affiche dans value des input la valeur que j'avait saisi.
    Je peux modifier ou effacer le contenu des champs quand je cliquerai sur réinitialiser, les champs reprendront la valeur indiquée dans la propriété value qui est la valeur par défaut.

    Et ma fonction javascript ni change rien car suite à mes tests j'ai remarqué que lors de l'exécution de la fonction le javascript supprime bien le contenu des champs un à un puis lorsque son exécution est finie alors les contenu de tout les champs réapparait.(L'input de type reset reprend le dessus si je puis dire).

    Je vais essayer de ne plus mettre cet input en type reset et laisser l'appel à la fonction Javascript lors de l'évènement onClick et voir ce que cela fait.

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    L'input de type reset reprend le dessus si je puis dire
    Puisque tu ne souhaites pas faire un reset (au sens du reset HTML), utilises un bouton de type button
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 101
    Points : 51
    Points
    51
    Par défaut
    Bon c'est assez comique mais effectivement le type reset et sa "fonction" associée reprenant le dessus après la fonction JS il m'a souffit le passer l'input en type "button" pour régler le problème.
    L'input est maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="button" id="reset" value=" " onclick="reinitForm('<?php echo $p;?>')"/>
    alors qu'il était :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="reset" id="reset" value=" " onclick="reinitForm('<?php echo $p;?>')"/>

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    A noter que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="reset" id="reset" value=" " onclick="reinitForm('<?php echo $p;?>');return false"/>
    fonctionnerait aussi, mais je trouve ça moins propre.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction générique pour valider les champs d'un formulaire quelconque
    Par dark_vidor dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/01/2009, 01h34
  2. vider les champs d'un formulaire après validation
    Par WomanPSG76 dans le forum VBA Access
    Réponses: 7
    Dernier message: 31/08/2007, 12h25
  3. Vider les champs d'un formulaire après validation
    Par HwRZxLc4 dans le forum Langage
    Réponses: 15
    Dernier message: 21/03/2007, 11h29
  4. Vider les champs d'un formulaire une fois ce dernier validé
    Par Silveur dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/03/2007, 08h58
  5. Réponses: 6
    Dernier message: 31/07/2006, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo