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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    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 659
    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 659
    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
    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
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    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 659
    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 659
    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 ...
    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 !

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    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 659
    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 659
    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 ...
    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 !

+ 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