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ôler la saisie


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de jamdinhe
    Inscrit en
    Avril 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 167
    Par défaut contrôler la saisie
    Bonjour a tous,

    je suis en ce moment en plein projet de fin d'études ... et je "Bloque" face a un problème que je n'avais pas en Delphi

    enfait, je voudrais empecher l'utilisateur d'introduire une valeur interdite par une contrainte d'integrité, par exp : touche alphabétique dans un champ numérique)

    le scénario est simple, dans un champ de saisie <input type="text" /> qui ne doit contenir que des chiffres, si l'utilisateur saisie au clavier une lettre alphabétique, la saisie doit etre automatiquement bloquée par une fonction JavaScript.

    a quoi doit ressembler ma fonction ?

    merci a tout ceux qui veulent aider
    AminE

  2. #2
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Merci de faire une petite recherche dans la FAQ !
    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

  3. #3
    Membre confirmé Avatar de jamdinhe
    Inscrit en
    Avril 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 167
    Par défaut
    ce n'est pas ce que je cherche vraiment, car il m'empeche aussi de supprimer, et je n'arrive pas a modifier son code, car je voudrais aussi autoriser des points pour les virgules flottantes et des tirets pour les dates...


    sinon, je vous remercie et j'attend davantages réponses

    PS : vous ne faites pas parties des développeurs PikXDK ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Par défaut
    Bonjour,

    Essaye ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" onKeypress="if(event.keyCode > 31 && (event.keyCode < 45 || event.keyCode > 57)) event.returnValue = false; if(event.which > 31 && (event.which < 45 || event.which > 57)) return false;" />

  5. #5
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    Citation Envoyé par jamdinhe Voir le message
    je voudrais aussi autoriser des points pour les virgules flottantes et des tirets pour les dates...
    c'est exactement ce que tu cherches, sauf que c'est à toi de modifier la condition. l'exemple présenté n'autorisent que les chiffres, à toi d'étendre à ta liste de caractères autorisées.

  6. #6
    Membre confirmé Avatar de jamdinhe
    Inscrit en
    Avril 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 167
    Par défaut
    Citation Envoyé par bigboomshakala
    c'est exactement ce que tu cherches, sauf que c'est à toi de modifier la condition. l'exemple présenté n'autorisent que les chiffres, à toi d'étendre à ta liste de caractères autorisées.
    C'est vrai, mais je ne réussis pas a trouver un tableau qui me donne toute la liste des "event.keycode"... le peut que j'ai trouvé me donne plusieurs "event.keycode" pour une même touche (diference des navigateurs) ...

    Ce que je cherche a faire, c'est come je faisait en delphi, je compare a la valeur de la touche pressée et non pas a son "event.keycode".

    Merci encore,

    j'attend votre aide

  7. #7
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    le keycode c'est simplement le code ascii (qui correspond à la valeur de la touche pressée...)
    Ce que je cherche a faire, c'est come je faisait en delphi, je compare a la valeur de la touche pressée et non pas a son "event.keycode".
    quelle autre valeur tu penses pouvoir récupérer pour la touche entrée, la tabulation ou les flèches par exemple?

  8. #8
    Membre Expert 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
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Merci de faire une petite recherche dans la FAQ !
    A noter que l'entrée dans la FAQ est fausse (ou tout du moins, fonctionne partiellement uniquement).

    Citation Envoyé par jamdinhe Voir le message
    C'est vrai, mais je ne réussis pas a trouver un tableau qui me donne toute la liste des "event.keycode"... le peut que j'ai trouvé me donne plusieurs "event.keycode" pour une même touche (diference des navigateurs) ...

    Ce que je cherche a faire, c'est come je faisait en delphi, je compare a la valeur de la touche pressée et non pas a son "event.keycode".
    En delphi, c'est facile parce que t'as un runtime unique. En javascript, ce n'est pas le cas car chaque navigateur implémente le truc à sa façon, donc c'est une vraie galère.

    Pour avoir fait ce genre de trucs pas plus tard qu'hier, je ne peux que te conseiller ce site pour voir les différences dans la gestion des événements selon les navigateurs.

    PS: utilise onkeydown et non onkeypress qui est très mal géré selon les navigateurs.

  9. #9
    Membre confirmé Avatar de jamdinhe
    Inscrit en
    Avril 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 167
    Par défaut
    Merci a touuuuuuuuuuuuus

    tout ce que je reçoit est vivement utile et il Fonctionne,

    en même temps, j'ai trouvé sur le net un trés beau script qui fait ce que je cherche sauf que je ne réussis pas a le modifier afin de n'autoriser qu'un seul Point pendant la saisie...

    Voici le Code

    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
    // copyright 1999 Idocs, Inc. http://www.idocs.com
    // Distribute this script freely but keep this notice in place
    function numbersonly(myfield, e, dec)
    {
    var key;
    var keychar;
     
    if (window.event)
       key = window.event.keyCode;
    else if (e)
       key = e.which;
    else
       return true;
    keychar = String.fromCharCode(key);
     
    // control keys
    if ((key==null) || (key==0) || (key==8) || 
        (key==9) || (key==13) || (key==27) )
       return true;
     
    // numbers
    else if ((("0123456789").indexOf(keychar) > -1))
       return true;
     
    // decimal point jump
    else if (dec && (keychar == "."))
       {
       myfield.form.elements[dec].focus();
       return false;
       }
    else
       return false;
    }
    si vous remarquer, je peut autoriser le point comme je peut le bloquer rien qu'en ignorant le paramètre "dec"a l'appel de la fonction.

    Merci a vous de m'aider a le modifier pour n'autoriser qu'une seule fois la saisie du point.

Discussions similaires

  1. [C# Datagrid] Comment contrôler la saisie d'un colonne ?
    Par kinou dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/05/2006, 10h15
  2. Contrôler les saisies clavier
    Par Pragmateek dans le forum C
    Réponses: 8
    Dernier message: 06/05/2006, 18h17
  3. Contrôler la saisie dans un formulaire
    Par beegees dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/03/2006, 17h41
  4. contrôler la saisie
    Par devdébuto dans le forum C
    Réponses: 5
    Dernier message: 07/11/2005, 09h14
  5. Est-il possible de contrôler la saisie dans champ...
    Par hop&hop dans le forum Administration
    Réponses: 6
    Dernier message: 31/10/2005, 16h19

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