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 :

Autoriser uniquement 0 ou 1


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut Autoriser uniquement 0 ou 1
    Bonjour à tous,

    j'ai plusieurs champs input et je ne voudrais autoriser uniquement les 1 ou 0 dans ces champs.

    Comment je pourrais mettre ca en place au niveau javascript?



    Merci d'avance pour votre aide

    guigui69

  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 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 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    il me semble que c'est implémenté en html5

    sinon en js tu peux limiter sur le keydown tester le keycode et n'autoriser que les keycode de 1 ou 0

    sinon c'est le role des checkboxes ...
    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
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    sinon c'est le role des checkboxes ...


    http://jsfiddle.net/pMLBa/
    One Web to rule them all

  4. #4
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Genre tout en css !

    EN fait, je pense que le besoin de guigui69 est d'avoir des input contenant des nombres en binaire je pense. Donc des input qui n'acceptent que des 0 ou des 1

    Solutions qui me viennent :

    sinon en js tu peux limiter sur le keydown tester le keycode et n'autoriser que les keycode de 1 ou 0
    - input type number
    - attribut pattern ?

  5. #5
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    J'y ai pensé à l'attribut pattern, ou à input number min="0" max="1" ; mais le problème c'est que ça n'empêche pas la saisie, ça se contente d'indiquer que la valeur du champ ne correspond pas à celle attendue.
    One Web to rule them all

  6. #6
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Deux solutions à mon avis :

    Lors de la soumission du formulaire tu vérifies la valeur saisie et si cette dernière n'est ni 0 ni 1, tu envoi un message d'alerte et tu interromps la soumission du formulaire...

    Lors de la soumission du formulaire tu vérifies si le champ correspond à une des valeurs (0 ou 1). Si tel n'est pas le cas, tu lui donnes l'autre valeur...

    Cependant, tu dois avoir une bonne raison de vouloir utiliser un champ texte, mais ce sera plus simple avec des boutons radios....

    @+
    Cadoudal56
    LMN24 - Site d'actualité internationale multilingue
    http://www.lmn24.com

  7. #7
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    En effet, du coup, la solution de SpaceFrog semble mieux : http://jsfiddle.net/nh5qR/

  8. #8
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Oui sauf que l'on peut rentrer 101, 10001, 10101010. De même qu'on peut copier coller tout et n'importe quoi à l'intérieur du champ sans déclencher un keypress.
    Une checkbox déguisée est plus sûre, plus pratique et ne nécessite pas de JavaScript : http://jsfiddle.net/9aJDc/56/
    One Web to rule them all

  9. #9
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Bien sûr faut ajouter le keyup, le blur etc .. C'était juste à titre d'exemple

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    Merci pour vos réponse.

    J'ai oublié (et je doit pas être dans la bonne section) mais j'utilise Jquery. Il y peut etre une fonctionnalité présent dans jquery pour faire cela

    guigui69

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Ce que tu as surtout oublié, c'est de dire si les réponses données t'ont permis de régler ton problème...
    Si ce n'est pas le cas, que te manque-t-il ?
    Enfin bref, un retour sur les réponses données quoi...
    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

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    Bonsoir,

    Je suis entrain de regarder et comprendre le script que propose kaamo:
    http://jsfiddle.net/nh5qR/


    je test et je reviens

    guigui69

  13. #13
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Un autre problème d'annuler le keypress c'est que ça bloque les raccourcis claviers. Ça altère le comportement du navigateur, et déroute l'utilisateur : à éviter donc.

    Plutôt qu'un preventDefault brutal, si j'avais à faire ça en passant par un input texte, je pencherais plutôt par une solution qui rectifie la value juste après la frappe. Ou bien qui se contente de signaler à l'utilisateur que ce qu'il a saisi est invalide. En termes d'accessibilité, ça me paraît le mieux.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  14. #14
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    keypress, keyup et blur pour bien couvrir tous les cas ?

    En effet, oublier le preventDefault est une bonne idée

  15. #15
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Rectifier une valeur après saisie, je pense que c'est une mauvaise méthode. Détourner ou altérer le comportement par défaut de l'input ne devrait être envisagé qu'en dernier recours, lorsque les standards ne suffisent pas.

    Pensons sémantique, accessibilité et cohérence avec le modèle de données en amont : pourquoi je veux que l'utilisateur rentre 0 ou 1
    Option 1 : c'est un booléen, un vrai ou faux une checkbox déguisée
    Option 2 : c'est un nombre entier allant de 0 minimum à 1 maximum :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="number" value="0" min="0" max="1">
    ou
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="range" value="0" min="0" max="1"/>
    Option 3 : c'est un texte qui pour une certaine raison ne peut prendre que la valeur "0" ou "1" :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" pattern="[0-1]"/>

    pour les questions de support, il existe des polyfills qui font des merveilles
    One Web to rule them all

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/07/2007, 14h46
  2. Réponses: 3
    Dernier message: 13/06/2007, 15h56
  3. Réponses: 2
    Dernier message: 17/03/2007, 23h38
  4. autoriser uniquement https
    Par gforce dans le forum Apache
    Réponses: 10
    Dernier message: 24/07/2006, 16h09
  5. Réponses: 2
    Dernier message: 09/02/2006, 18h20

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