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 :

conditions pour fonction alert


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2006
    Messages : 59
    Par défaut conditions pour fonction alert
    Bonjour,

    Je cherche à réaliser un contrôle de formulaire en javascript. Mon formulaire est composé des champs de type " radio " et textarea.
    Les différents champs ont tous le même nom ...
    J'aimerai donc réaliser un contrôle différents suivant le type du champs
    Le nom de mon champs est un numérique qui me renvoi donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     champs radio :<input type='radio' name='2' value=3 id='detail2' '> 
    textarea :<textarea name='3' rows='10' cols='70'>
    La fonction suivant contient un compteur qui incremente donc la valeur et me renvoi alors le nom du champs a contrôler.
    Je transmet à la variable " champs " le nom du champs à chaque incrementation.
    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
    function champsok(){ 
    // Ici debut de ma boucle pour incrementation
          champs = document.getElementById(1);
         if ( champs.tagName == "input" && champs.getAttribute("type") == "radio" ) {
             if (
                 (document.getElementsByName(1)[0].checked == false) && 
                 (document.getElementsByName(1)[1].checked == false) && 
                 (document.getElementsByName(1)[2].checked == false) && 
                 (document.getElementsByName(1)[3].checked == false) || 
                 (document.getElementsByName(1)[4].checked == false)
                 )
                 {alert("Veuillez tout remplir");return false;}
        }
        if ( champs.tagName == "textarea" && champs.value == "" ){
        alert("Veuillez tout remplir");return false;}
        }//ici fin de ma boucle d'incrementation
    }//fin fonction
    Je ne comprends psa pourquoi je n'arrive pas à verifier que mes champs soient bien saisit

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    getElementsByName ne fonctionne pas à priori. Je ne comprends pas ton test sur les boutons radios(des && et des ||), une solution facile avec les boutons radios est d'en cocher un par défaut, car pour le decocher il faudra en cocher un autre et cela évite une vérification.(C'est la que tous les anciens du forum s'insurgent contre ma stratégie )

    Enfin bref c'est pas très clair pour moi, tout ce petit pavé pour dire que je peux pas aider...A part mes remarques du début.

  3. #3
    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 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 658
    Billets dans le blog
    1
    Par défaut
    le name doit être du string

    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 !

  4. #4
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2006
    Messages : 59
    Par défaut
    Déja merci de vos réponses aussi rapide !
    Je suis pas un pro en javascript, c'est sur que la fonction est perfectible .
    Comme j'ai plusieur bouton radio pour la meme question, ( soit 4 ou soit 5) donc je verifie si les 4 premiers ne sont pas cochés ( le 5eme étant pas obligatoire ... )

    Ce qui serait bien c'est que pour n'importe qu'elle question avec réponses de type radio avec 4 ou 5 bouton ou bien réponses avec type textarea, j'ai un contrôle qui verifie que la question soit répondu.

    ps: je viens de trouver une erreur qui ne corrige pas mon problème .. le nom de l'id est detail+incrementation et non pas l'incrementation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function champsok(){ 
     	 champs = document.getElementById('detail1');
    		 if ( champs.tagName == "input" && champs.getAttribute("type") == "radio" ){
    				  if((document.getElementsByName('1')[0].checked == false) && 
    					 (document.getElementsByName('1')[1].checked == false) && 
    					 (document.getElementsByName('1')[2].checked == false) && 
    					 (document.getElementsByName('1')[3].checked == false) || 
    					 (document.getElementsByName('1')[4].checked == false))
    				alert("Veuillez tout remplir");return false;	
    		 	}	}
    J'ai fais un test avec simplement un alert() dans la condition qui verifie mon type de champs ... mais une fois que je rajoute ma condition sur les boutons radio, mais impossible de valider le formulaire si un textarea est présent. " Et oai une textarea peut pas être checked "

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Par défaut
    Ta vérification a donc un problème, si j'ai bien compris, tu controles soit 4 soit 5 boutons radios avec la même formule. Donc si tu te retrouves dans un cas avec 5 boutons radios, et que tu coches le 4ème ou le 5ème, ton code est sensé renvoyer que cette question n'a pas reçu de réponse.

  6. #6
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2006
    Messages : 59
    Par défaut
    Oui je suis d'accord avec toi, c'est pourquoi j'ai mis pour le 5eme bouton un " OU " comme ca si un des 4 premier bouton ou le 5eme n'est pas coché .. je retourne le alert().
    Cela ne fonctionnerai pas si j'avais mis un " && " pour le dernier ... Dans se cas la condition me renverrais à chaque fois l'alerte puisque " un des 4 premier bouton et le 5eme n'est pas coché "

    Je pense pas me tromper dans ma logique, si ?

    Ce code fonctionne bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     function champsok(){ 
     
         champs = document.getElementById('<?php echo "detail".$ic; ?>');
             if ( champs.tagName == "INPUT" && champs.getAttribute("type") == "radio" )
                    alert("Veuillez tout remplir");return false;    
     
     }

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

Discussions similaires

  1. [XL-2007] VBA : ajout fonction pour une alerte
    Par Serenay dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/04/2015, 08h55
  2. Réponses: 2
    Dernier message: 26/03/2015, 10h29
  3. Réponses: 2
    Dernier message: 30/08/2009, 19h42
  4. Réponses: 1
    Dernier message: 14/08/2009, 12h19
  5. une condition pour fonction SUM
    Par backdraf dans le forum Développement
    Réponses: 2
    Dernier message: 24/06/2009, 14h41

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