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 :

Contrôle de saisie sur une zone de texte


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 28
    Points : 10
    Points
    10
    Par défaut Contrôle de saisie sur une zone de texte
    Salut tout le monde,
    je fais un contrôle de saisie sur une zone de texte dans un formulaire. Elle contiendra le nom et prénom d'une personne de telle façon :
    - qu'elle ne soit pas vide.
    -contient un seul espace entre le nom et prénom.
    -formé uniquement par des caractères alphabétiques
    j'ai écrit ce code qui marche pour des chaines comme "mdm rrl" et en marche pas pour d'autres comme "jean valjean".
    S'ils vous plait ou est le problème ?
    Code HTML : 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
    <HTML>
    <HEAD>
    <TITLE>Carnets d'adresses</TITLE>
    <SCRIPT language="JavaScript">
    function verif()
    {
    l=window.document.car.np.value.length;
    i=0;
    nb=0;
    do
    {
    i=i+1;
    alert(i);
    if(window.document.car.np.value.charAt(i)==' ')
    {nb++;}
    }while ((((window.document.car.np.value.charAt(i).toUpperCase() >'A') && (window.document.car.np.value.charAt(i).toUpperCase() <'Z'))||
    (window.document.car.np.value.charAt(i)==' ')) && (i<=l-1) && (nb<=1));
     
    if (window.document.car.np.value=="" || nb!=1 || i<=l-1 || window.document.car.np.value.indexOf(" ",1)==-1 )
    { 
    alert("resaisir le nom et le prénom");}
    else
    {alert("cv");}
     
    }
     
     
     
     
    </SCRIPT>
    </HEAD>
    <BODY bgcolor="white grey">
    <font size="26"  color="blue"><center>CARNET D'ADRESSES</center></FONT>
    <br><br><br>
     
    <FORM name="car" >
    Nom et prénom<input type="text" name="np"  size="20" onblur="verif()"    ><br><br>
    Adresse Email : <input type="text" name="email" onblur=""><br><br>
    <input type="button" name="baj" value="Ajouter">
    <input type="button" name="bsu" value="Suprimer">
    <input type="button" name="bre" value="Retrouver adresse mail">
     
    <br><br>
    <select name="pers" >
    <option selected value=" vide  "> Sélectionner un contact    </option>
    </select>
     
    </FORM>
    </BODY>
    </HTML>

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2020
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2020
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Bonjour. Concernant ton problème une solution serait de récupérer la valeur du input et de parcourir la chaine avec un compteur qui s'incrémente à la rencontre d'un espace et... Je te laisse le soin de faire le reste.
    PS: une autre solution serait aussi de créer deux inputs, un avec un champ nom et un autre avec prénom je dis ça je dis rien

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    Bonjour
    c'est ce que j'ai fait. il y a un compteur i qui s'incremente dans la boucle do..while

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Schématiquement:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div>
       <input type="text" id="t" />
    </div>

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    document.querySelector("#t").addEventListener("change",e=>{
    /* Quand tu quittes le champ, tu vérifies qu'il contient
    deux mots d'une longueur comprise entre 2 et 15 caractères
    */
    	const mess= /^[a-z]{2,15} [a-z]{2,15}$/i.test(e.target.value) ?
    	"Vous êtes\n" + e.target.value :
    	"Erreur de saisie";
    	alert(mess);
    })

  5. #5
    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
    <SCRIPT language="JavaScript">
    =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">
    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 !

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    Merci beaucoup pour vos réponses.
    J'ai fait une erreur d'inattention dans la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (ch.charAt(i).toUpperCase() >'A')&& (ch.charAt(i).toUpperCase() <'Z')
    et ça doit être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     (ch.charAt(i).toUpperCase() >='A')&& (ch.charAt(i).toUpperCase() <='Z')
    c a d pour qu'elle accepte le A et le Z

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Je ne comprends pas l'utilité d'une boucle pour contrôler la saisie d'un seul champ

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    Citation Envoyé par chrisyk22
    PS: une autre solution serait aussi de créer deux inputs, un avec un champ nom et un autre avec prénom
    je plussoies attendu que j'ai rendez-vous avec Jean Eudes de la Lamotte-Beuvron .

  9. #9
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Bah, on va dire que c'est pour des pseudos (et simples en plus)

  10. #10
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    je suis débutant en javascript et en plus s'il y a une autre méthode autre que celle ci je serais reconnaissant de ma la communiquer.
    Merci

  11. #11
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Je t'ai fourni un script qui fonctionne...

    Le reste du problème n'a rien à voir avec la programmation.
    Tu considères qu'un ensemble Prénom + Nom est constitué de deux blocs de caractères purement alphabétiques: tu te trompes car tu oublies les accents, les traits d'union, les apostrophes voire les espaces multiples.

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 28
    Points : 10
    Points
    10
    Par défaut
    Merci bien Mr
    Puisque dans ma langue les nom et prénoms ne présentent pas des accents et des apostrophes. Il se peut des espaces consécutifs oui .
    En plus le code je ne l'ai pas bien assimilé.
    En tout cas Merci pour votre attention et votre aide

  13. #13
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Citation Envoyé par afifi Voir le message
    le code je ne l'ai pas bien assimilé
    Ben oui mais c'est cadeau: copie-le tel quel et regarde le commentaire dans le script, tu verras déjà si ça marche ou pas...

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

Discussions similaires

  1. [AJAX] Auto saisie sur une zone de texte
    Par medhan dans le forum AJAX
    Réponses: 0
    Dernier message: 03/11/2013, 23h14
  2. test sur la saisie dans une zone de texte
    Par niamo dans le forum IHM
    Réponses: 4
    Dernier message: 01/06/2010, 13h48
  3. [Formulaire]Contrôle de saisie dans une zone de texte
    Par ludovicparis dans le forum IHM
    Réponses: 7
    Dernier message: 29/03/2007, 13h39
  4. menu popup sur une zone de text
    Par jesus144 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/05/2005, 23h15

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