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
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
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 !
One Web to rule them all
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 :
- input type numbersinon en js tu peux limiter sur le keydown tester le keycode et n'autoriser que les keycode de 1 ou 0
- attribut pattern ?
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
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
En effet, du coup, la solution de SpaceFrog semble mieux : http://jsfiddle.net/nh5qR/
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
Bien sûr faut ajouter le keyup, le blur etc .. C'était juste à titre d'exemple
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
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 JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
Bonsoir,
Je suis entrain de regarder et comprendre le script que propose kaamo:
http://jsfiddle.net/nh5qR/
je test et je reviens
guigui69
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 !
keypress, keyup et blur pour bien couvrir tous les cas ?
En effet, oublier le preventDefault est une bonne idée
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 :
ou
Code html : Sélectionner tout - Visualiser dans une fenêtre à part <input type="number" 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="range" value="0" min="0" max="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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager