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 :

[DOM] [INPUT text] Forcer le type du champ


Sujet :

JavaScript

  1. #1
    Membre confirmé Avatar de Nicomart
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 205
    Par défaut [DOM] [INPUT text] Forcer le type du champ
    Bonjour à tous,

    je voudrais forcer le type d'un champ texte input dans un formulaire : Par exemple, pour une année, faire en sorte que la saisie de caractères autres que des entiers soit inactive.

    Y a-t-il un attribut de la balise input qui permette de réaliser ce contrôle rapidement (cad sans passer par des expressions régulières javascript ou php) ?

    Merci d'avance

    Nico

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 82
    Par défaut
    Pour la vérif de champs je ne voit que le javascript et le php.

    Tu peux sinon prédéfinir une liste avec des dates, comme ca tu es sur que en sortie tu n'auras que des dates (vu que l'utilisateur ne rentre rien ).

    Mais bon pour le coup je te conseille quand même de faire des vérif, c'est je pense ce qu'il y a de mieux.

  3. #3
    Membre confirmé Avatar de Nicomart
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 205
    Par défaut
    Je fais des vérifs de toute façon (js avec onSubmit, puis php) mais j'espérais pouvoir faire celle-ci plus simplement. J'ai une tendance naturelle à en faire le moins possible, bizarre

    Merci de ta réponse, même si elle confirme (malheureusement) ce que je craignais...

  4. #4
    Membre éclairé Avatar de jmulans
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 397
    Par défaut
    j'ai deja cherché a la faire, et le mieux que j'ai trouvé c'est en javascript
    on interdit la frappe des lettre dans un input

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="texte" onkeypress="chiffres(event)"/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function chiffres(event) {
        // Compatibilité IE / Firefox
        if(!event&&window.event) {
            event=window.event;
        }
        // IE
        if(event.keyCode < 48 || event.keyCode > 57) {
            event.returnValue = false;
            event.cancelBubble = true;
        }
    }

  5. #5
    Membre confirmé Avatar de Nicomart
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 205
    Par défaut
    -> C'est rapide
    -> C'est compatible
    -> Ca fonctionne
    => Adopté

    Merci

  6. #6
    Membre éclairé Avatar de jmulans
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 397
    Par défaut
    Citation Envoyé par Nicomart
    -> C'est rapide
    -> C'est compatible
    -> Ca fonctionne
    => Adopté

    Merci
    mince par contre je suis pas sur pour firefox, essaye

    edit -> la vraie focntion est comme ça
    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
    function chiffres(event) {
        // Compatibilité IE / Firefox
        if(!event&&window.event) {
            event=window.event;
        }
        // IE
        if(event.keyCode < 48 || event.keyCode > 57) {
            event.returnValue = false;
            event.cancelBubble = true;
        }
        // DOM
        if(event.which < 48 || event.which > 57) {
            event.preventDefault();
            event.stopPropagation();
        }
    }
    j'avais enlevé la partie DOM parce ce con là il bloquais TOUT sauf les chiffres, donc il bloquais les touches delete par exemple (seulement sous firefox)

  7. #7
    Membre confirmé Avatar de Nicomart
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 205
    Par défaut
    Effectivement, ça a l'air de ne pas faire bon ménage avec le renard. J'essaie la nouvelle version.

    Je me suis premier une "amélioration" : ajouter la touche de tabulation, bien pratique pour passer au champ suivant. La condition devient alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 9)

  8. #8
    Membre éclairé Avatar de jmulans
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 397
    Par défaut
    oui apres il faut juste trouver les codes des touches a accepter

  9. #9
    Membre confirmé Avatar de Nicomart
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 205
    Par défaut
    Fonction définitive, testée et validée sous IE 7, FF 2.0.0.5, Opera 9.21 et Safari 3.0.2 :

    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
    function chiffres(event) {
        // Compatibilité IE / Firefox
        if (!event&&window.event) {
            event = window.event;
        }
        // IE
        if ((event.keyCode < 48 || event.keyCode > 57) && event.keyCode != 9) {
            event.returnValue = false;
            event.cancelBubble = true;
    	}
    	 // DOM
        if ((event.which < 48 || event.which > 57) && event.which != 9) {
            event.preventDefault();
            event.stopPropagation();
        }
    }
    Il reste juste un problème avec la touche tab sous ff, mais il semble que ça provient plutôt d'une configuration du navigateur.

    encore merci

    <edit> Bon, pour FF j'ai parlé un peu vite, mais dans l'esprit c'est ça </edit>

  10. #10
    Membre confirmé Avatar de Nicomart
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 205
    Par défaut
    Finalement j'ai un petit souci pour le déplacement dans le champ (touches directionelles) et la suppression (touche suppr). J'utilise les codes 37 38 39 et 40 pour les touches directionelles et 47 pour suppr...

  11. #11
    Membre éclairé Avatar de jmulans
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 397
    Par défaut
    ouais moi j'avais deja essayé, mais je ne trouvais pas comment faire pour la touche suppr et les touches directionnelles
    alors au final j'ai pas pris en compte firefox

    tu me dit si tu trouve

  12. #12
    Membre confirmé Avatar de Nicomart
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    205
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 205
    Par défaut
    Pas de souci, je ferai signe. Surtout que le problème concerne égaleemnt Safari, ça commence à faire beaucoup...

Discussions similaires

  1. [DOM] [IE6] Définir l'attribut type d'un champ input
    Par franculo_caoulene dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/01/2008, 17h27
  2. empecher saisie de caractères dans champ de type input text
    Par mussara dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/06/2006, 14h09
  3. [debutant] incrementer valeur champ input text
    Par ilood dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/07/2005, 13h21
  4. Un input qui passe de type text à type password ?
    Par Michaël dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 28/06/2005, 11h33
  5. Problème de contrôle de champ input texte
    Par NATHW dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 08/10/2004, 22h48

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