Comment puis-je restreindre l'entrée à une zone de texte afin qu'elle n'accepte que les nombres et la virgule décimale?
javascript
html
Étain
la source
la source
isNaN(this.textbox.value)
??Réponses:
Cela fonctionne vraiment!
la source
&& charCode != 190 && charCode != 110 && (charCode > 105 || charCode < 96)
Est-ce ce que vous recherchez?
J'espère que cela aide.
EDIT: J'ai édité mon exemple ci-dessus afin qu'il ne puisse y avoir qu'un seul point, précédé d'au moins un chiffre et suivi d'au moins un chiffre.
la source
La solution acceptée n'est pas complète, car vous pouvez saisir plusieurs «.», Par exemple 24 .... 22..22. avec quelques petites modifications, cela fonctionnera comme prévu:
la source
ondrop="return false;" onpaste="return false;" oncontextmenu="return false;"
semble être suffisantVoici une autre solution qui permet les nombres décimaux et limite également les chiffres après la décimale à 2 décimales.
la source
if
est manquant un "C" majuscule..
), tiret (-
) et la lettree
lorsque le texte est collé ou déposé sur le champ. L'élément HTML affichera également deux flèches pour incrémenter et décrémenter le nombre par défaut dans Chrome. Le bouton de décrémentation permet au nombre de tomber en dessous de zéro.Toutes les solutions présentées ici utilisent des événements clés uniques. Ceci est très sujet aux erreurs car l'entrée peut également être donnée en utilisant copier-coller ou glisser-déposer. De plus, certaines des solutions restreignent l'utilisation de clés sans caractère comme
ctrl+c
,Pos1
etc.Je suggère plutôt que de vérifier à chaque pression de touche, vous vérifiez si le résultat est valide par rapport à vos attentes.
L'
oninput
événement est déclenché juste après que quelque chose a été modifié dans la zone de texte et avant d'être rendu.Vous pouvez étendre le RegEx au format numérique que vous souhaitez accepter. C'est beaucoup plus facile à maintenir et extensible que la vérification des pressions sur une seule touche.
la source
Cherchez-vous quelque chose comme ça?
la source
Il suffit d'appliquer cette méthode dans Jquery et vous pouvez valider votre zone de texte pour n'accepter que le nombre avec une décimale uniquement.
Veuillez voir la démo de travail ici
la source
Pour tous ceux qui trébuchent ici comme moi, voici une version de jQuery 1.10.2 que j'ai écrite et qui fonctionne très bien pour moi, même si elle est gourmande en ressources:
la source
Une petite correction à la brillante réponse de @ rebisco pour valider parfaitement la décimale.
la source
Si vous le souhaitez pour les valeurs flottantes,
Voici la fonction que j'utilise
la source
la source
la source
voici un script qui peut vous aider:
la source
Supposons que le nom de votre champ de zone de texte soit
Income
Appelez cette méthode de validation lorsque vous devez valider votre champ:
la source
Extension de la réponse de @ rebisco. ce code ci-dessous n'autorisera que des chiffres et un simple «.» (point) dans la zone de texte.
la source
Meilleure solution
la source
J'ai choisi de m'attaquer à cela sur l'
oninput
événement afin de gérer le problème du collage du clavier, du collage de la souris et des frappes de touches. Passez vrai ou faux pour indiquer une validation décimale ou entière.Il s'agit essentiellement de trois étapes en trois doublures. Si vous ne voulez pas tronquer les décimales, commentez la troisième étape. Les ajustements d'arrondi peuvent également être effectués à la troisième étape.
la source
À partir de la réponse @rebisco:
Autorise uniquement ce format: 123123123 [.121213]
Démo ici démo
la source
J'espère que cela fonctionnera pour vous.
la source
Le code suivant a fonctionné pour moi
La zone de saisie avec l'événement "onkeypress" comme suit
La fonction "isNumberKey" est la suivante
la source
J'ai observé que pour toutes les réponses fournies ici, les choses ne fonctionnent pas si nous sélectionnons une partie du texte dans la zone de texte et essayons d'écraser cette partie. J'ai donc modifié la fonction qui est comme ci-dessous:
la source
Pour les nombres décimaux et autorisant également les nombres négatifs avec 2 places pour les décimales après le point ... J'ai modifié la fonction pour:
la source
Une autre façon de restreindre l'entrée à une zone de texte afin qu'elle n'accepte que des nombres et la virgule décimale consiste à utiliser du javascript dans l'entrée html. Cela fonctionne pour moi:
--Accepte--
9
9,99
--N'accepte pas--
9,99,99
abc
la source
Il n'autorisera que numérique et vous permettra de mettre "." pour décimal.
la source
Cela fonctionne très bien.
la source
Meilleure solution de travail avec un exemple de démonstration en direct Pure-Javascript: https://jsfiddle.net/manoj2010/ygkpa89o/
la source
Travailler moi-même sur la question, et c'est ce que j'ai jusqu'à présent. Cela fonctionne plus ou moins, mais il est impossible d'ajouter des moins par la suite en raison du nouveau contrôle de valeur. N'autorise pas non plus la virgule comme séparateur de mille, uniquement décimal.
Ce n'est pas parfait, mais cela pourrait donner quelques idées.
Permet:
11 11 .245 (dans le contrôleur formaté sur flou à 1111.245)
11,44
-123.123
-1 014
0123 (formaté sur flou à 123)
ne permet pas:
! @ # $ / *
abc
11.11.1
11,11,1
0,42
la source
la source
Je sais que cette question est très ancienne, mais nous avons encore souvent de telles exigences. Il existe de nombreux exemples, mais beaucoup semblent trop verbeux ou complexes pour une simple implémentation.
Consultez ce https://jsfiddle.net/vibs2006/rn0fvxuk/ et améliorez-le (si vous le pouvez). Il fonctionne sur IE, Firefox, Chrome et Edge Browser.
Voici le code de travail.
la source
Vous pouvez restreindre les valeurs à saisir par l'utilisateur en spécifiant la plage de valeurs ASCII.
Exemple : 48 à 57 pour les valeurs numériques (0 à 9)
la source