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 :

Interdire la répetition de chiffres


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Interdire la répetition de chiffres
    Bonjour à tous

    j'ai un problème sur une question de mon formulaire

    Voici la question

    Quel sport préférez vous

    1 ) F1
    2 ) Moto-GP
    3 ) Rally
    4 ) Champcar
    5 ) Nascar

    j'ai un champ text ou les personnes peuvent répondre en mettent un chiffre 1,2,3,4,5

    Comment faire pour interdire le fait de pouvoir mettre deux fois le chiffre 1 ou le chiffre 2 ou un chiffre autre que 1,2,3,4,5
    pour pouvoir avoir une cohérence sur la récupération des données.

    Exemple de réponse que je récupére pour le moment 21345 ou 45132 si je répond bien à la question

    Merci d'avance pour vos réponses

    Exemple :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
     
    <!--Debut du premier bloc-->
    <div id="page1" style="display:block;">
     
    <form id="form1" name="form1" method="post" action=""> 
     
    Quel sport préférez vous
    <br />
    <br />
    1 ) F1
    <br />
    2 ) Moto-GP
    <br />
    3 ) Rally
    <br />
    4 ) Champcar
    <br />
    5 ) Nascar
     
    <br />
    <br />
     
    <div class="r">Exemple de réponse : 21453 ou 45321 etc ...</div>
    <br />
    Réponse : &nbsp; <input type="text" name="a15" id="input" onkeyup="javascript:verif();" onBlur='valider(this)' value="" size="10" maxlength="5" />
     
    <input type="button" onclick="afficher_cacher(2);" id="envoi" disabled="disabled" title="Pour passer à l'etape suivante vous devez répondre à toutes les questions" value="Suivant >>" class="bo" />
     
    </div>
    <!--Fin du premier bloc-->
     
     
     
    <!--Debut du deuxieme bloc-->
    <div id="page2" style="display:none;">
    <br />
    <br />
    Ici checkbox et radio ok pas de blm
    <br />
    <br />
     
    <!--On va afficher le div page1 et cacher le div page2-->                                         
    <input type="button" onclick="afficher_cacher(1);" value="<< Précédent" class="bo" /> 
    <!--On va afficher le div page3 et cacher le div page2-->
    <input type="button" onclick="afficher_cacher(3);" id="envoi2" disabled="disabled" title="Pour passer à l'etape suivante vous devez répondre à toutes les questions" value="Suivant >>" class="bo" />
     
    </div>
    <!--Fin du deuxieme bloc-->
     
     
    <!--Debut du troisième bloc-->
    <div id="page3" style="display:none;">
    <br />
    <br />
    Ici checkbox et radio ok pas de blm
    <br />
    <br />
    <!--On va afficher le div page2 et cacher le div page3-->                               
    <input type="button" onclick="afficher_cacher(2);" value="<< Précédent" class="bo" />
    <!--Ou alors on envoi le formulaire-->
    <input type="submit" name="envoi" id="envoi3" disabled="disabled" title="Pour envoyer vos réponses vous devez répondre à toutes les questions" value="Envoyer !" class="bo" /> 
    </div>
    </form>

  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 641
    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 641
    Points : 66 666
    Points
    66 666
    Billets dans le blog
    1
    Par défaut
    tu veux le faire en direct ou lors de la soumission du form ?

    donc soit sur le onkeyup + onmouseup ou sur le onchange ou onblur

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    je veux le faire en direct

    Voici je javascript utilisé

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    function verif(){
    		var champ1 = document.getElementById('input');
    		if(!champ1.value){
    				document.getElementById('envoi').disabled = true;
    		}
    		else{
    				document.getElementById('envoi').disabled = false;
    		}
    }
     
    function valider(a15){
        var mini = 5
        var maxi = 6
        if ( mini != 0 ) {
          // Si la longueur de la saisie est inférieure au minimum demandé
          if ( a15.value.length < mini ) {
            // Envoi d'une alerte
            alert('Merci de classez les réponses dans l\'ordre de vos préférences......  . Voir Exemple de réponse');
            return false
          }
        }
          // Si la longueur de la saisie est supérieure au maximum demandé
        if ( maxi != 0 ) {
          if ( a15.value.length > maxi ) {
            //alert('Vous ne devez pas saisir plus de ' + maxi + ' '+ mini 'caracteres numériques.');
            return false
          }
        }
      }

  4. #4
    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 641
    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 641
    Points : 66 666
    Points
    66 666
    Billets dans le blog
    1
    Par défaut
    au lieu de tester le max de caractères, mets un maxLength sur ton inpout text
    ...

    pour le doublon faut tester avec un indexOf ...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Merci pour la réponse j'utilise maxLength sur mon input
    + le script au cas ou la personne n'a pas rempli le champ avec les 5 réponses

    Par contre je ne comprend pas comment faire au niveau des doublon avec indexOf a tu un lien, un tuto, ou autre qui me permettrait de comprendre, car la je patoggge dans la semoule...

    Merci d'avance.

  6. #6
    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 641
    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 641
    Points : 66 666
    Points
    66 666
    Billets dans le blog
    1
    Par défaut
    Mouaip bon ...
    pour le coup du doublon en direct a mon avis il y a beaucoup plus simple à faire
    car il faudrait intercepter avec un event.keycode et ce n'est pas crossbrowser
    pour quoi ne pas renseigner ton input text au moyen de click sur des checkboxes par exemple :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <script type='text/javascript'>
    function foo(obj){
    document.getElementById("ordre").value+=obj.value;
    obj.disabled='disabled';
    }
    function resetO(){
    var TabOrder=document.getElementsByName('io');
    var OL=TabOrder.length;
    for(i=0;i<OL;i++){
    TabOrder[i].checked=false;
    TabOrder[i].disabled=false;
    document.getElementById("ordre").value='';
    }
    }
     
    </script>
     
     
    </head>
     
    <body>
    <input type="checkbox" id='one' name="io" value='1' onclick='foo(this)'><label for='one'>un</label><br />
    <input type="checkbox" id='two' name="io" value='2' onclick='foo(this)'><label for='two'>deux</label><br />
    <input type="checkbox" id='three' name="io" value='3' onclick='foo(this)'><label for='three'>trois</label><br />
    <input type="checkbox" id='four' name="io" value='4' onclick='foo(this)'><label for='four'>quatre</label><br />
    <input type="checkbox" id='five' name="io" value='5' onclick='foo(this)'><label for='five'>cinq</label><br />
    <input type='text' readonly='readonly' id="ordre" /><br />
    <input type='button' onclick="resetO()" value='reset' />
     
    </body>
    là pas de doublon possible, il ne reste plus qu'a tester que tous les checks soient cochés lors du onsubmlit ou la longueur du champs order <5

    ou encore sur le onchange du camps ordre si il est de longeur 5 rendre le bouton submit visible ou enabled ...

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Merci pour le script
    j'essaie de mettre le tout en place

    je te tiens au courant de l'évolution .....

    Merci encore.

  8. #8
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Ca serait pas plus simple de faire ça avec des checkbox? Tu aurais l'unicité des réponses possibles et la possibilité d'en sélectionner plusieurs comme tu sembles vouloir le faire, sans te prendre la tête avec du javascript et en plus joli ^^

    Edit: Comment passer pour un con

  9. #9
    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 641
    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 641
    Points : 66 666
    Points
    66 666
    Billets dans le blog
    1
    Par défaut
    Merci DoubleU mais tu a du rester à l'heure d'hiver de l'année dernière

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    Un grand grand merci à toi SpaceFrog tout fonctionne nickel

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

Discussions similaires

  1. Interdire la saisie de chiffres dans mon input text
    Par karibouxe dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 03/11/2011, 10h50
  2. [RegExp] interdire caractères et chiffre avant un lettre
    Par snip74 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 07/12/2010, 12h17
  3. [AC-2007] Interdire la connexion avec une BDD non chiffrée
    Par Triton972 dans le forum Sécurité
    Réponses: 6
    Dernier message: 20/06/2010, 16h05
  4. Interdire CERTAINS chiffres dans MaskedTextbox
    Par vérokit dans le forum VB.NET
    Réponses: 6
    Dernier message: 10/06/2008, 15h21
  5. Recherche programme qui convertit les chiffres arabes en nb
    Par oli57 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 15/06/2002, 03h11

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