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 :

controle saisie zone de text


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut controle saisie zone de text
    bonjour,

    Je voudrais créer une zone de texte qui n'accepte que des chiffres non negatifs.
    Je voudrais que la zone de texte n'accepte que 4 chiffres au maximum.
    Si le nombre est suppérieur à 4096, je voudrais qu'il soit tout de remplacé par le nombre 4096.

    Comment faire ?

    Pour la taille de la textebox (4 caractères), comment est-ce défini ? en html, css ou javascript ?

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" onchange="this.value=(parseInt(this.value)>4096)?4096:this.value;" onkeyup="if (this.value.length>4) {alert('4 max !');return false;}">
    Comme ça ?

    A+

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    ... ça ressemble

    actuellement, avec ta fonction, on peut entrer des lettres => je veux que lorsqu'on tape une lettre (ou qu'on fasse un copier/coller d'une lettre) que celle-ci ne soit pas prise en compte.
    je veux aussi (qu'a la place d'afficher un message) que si on rentre plus de 4 caractères, les caratères supplémentaires soient bloqués

    pour l'affichage de la taille de la zone, c'est sur le css qu'il faut jouer ? comment fait-on pour que la taille corresponde à 4 caratères ?

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Emcy
    actuellement, avec ta fonction, on peut entrer des lettres
    je veux que lorsqu'on tape une lettre (ou qu'on fasse un copier/coller d'une lettre) que celle-ci ne soit pas prise en compte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.value=(parseInt(this.value)>4096)?4096:((isNaN(this.value))?'':this.value);
    Citation Envoyé par Emcy
    je veux aussi (qu'a la place d'afficher un message) que si on rentre plus de 4 caractères, les caratères supplémentaires soient bloqués
    Tu peux peut-être adapter un peu, non ?
    pour l'affichage de la taille de la zone, c'est sur le css qu'il faut jouer ? comment fait-on pour que la taille corresponde à 4 caratères ?
    Tel quel, pas efficace (en nb de car.). Définis le en "px" (style="width:20px;" au cas où )

    A+

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    sur un keydown, comment fait-on pour connaitre le caratère entré et selon une condition, le bloquer ?

    => le problème du keyup ou du onchange, c'est qu'on voit le caractère s'afficher avant qu'il s'efface => ça fait pas très bien...

    définir la taille d'une textbow en px, est-ce vraimment une bonne solution ? => si l'utilisateur change la taille du texte, les caractères risquent de ne pas rentrer, non ?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 249
    Par défaut
    j'arrive à récuperer la touche qui à été pressée mais je n'arrive pas à la bloquer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function CtrlSaisie(MyEvent)
    {
    	if (!((96 <= MyEvent.keyCode) && (MyEvent.keyCode <= 105))){ // touches chiffres
    		if ((MyEvent.keyCode != 8) && (MyEvent.keyCode != 46)){ /// touches backspace et suppr
    			//MyEvent.keyCode = null; // ne marche pas
    		}
    	}
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" onkeydown="CtrlSaisie(event);">

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Emcy
    définir la taille d'une textbow en px, est-ce vraimment une bonne solution ?
    Le CSS est le + adapté pour l'aspect graphique (c'est fait pour).
    Citation Envoyé par Emcy
    => si l'utilisateur change la taille du texte, les caractères risquent de ne pas rentrer, non ?
    Là ça devient son pb, pas le tien !
    Il peut aussi réduire sa fenêtre en 10px X 10px : tu veux pouvoir le gérer aussi ?

    Sur les prototypes, je peux pas t'aider. Mais je pense que tu devrais passer le "this" en param de ta fonction. L'appeler de l' "intérieur" pose pb ...

    A+

Discussions similaires

  1. [AC-2000] Controler les informations saisies dans une zone de texte
    Par etoileetoile dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/10/2009, 14h33
  2. Réponses: 4
    Dernier message: 25/08/2008, 15h08
  3. contrôle de saisie zone de texte
    Par rachid31 dans le forum VBA Access
    Réponses: 10
    Dernier message: 20/05/2008, 14h42
  4. Réponses: 1
    Dernier message: 09/05/2007, 11h41
  5. [html] zone de texte sans saisie possible
    Par Silvia12 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/08/2005, 16h37

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