Je crée une page Web où j'ai un champ de texte dans lequel je veux autoriser uniquement les caractères numériques comme (0,1,2,3,4,5 ... 9) 0-9.
Comment puis-je faire cela en utilisant jQuery?
jquery
html
validation
numeric
Prashant
la source
la source
Réponses:
Remarque: Ceci est une réponse mise à jour. Les commentaires ci-dessous se réfèrent à une ancienne version qui dérangeait les codes clés.
jQuery
Essayez- le vous-même sur JSFiddle .
Il n'y a pas d'implémentation jQuery native pour cela, mais vous pouvez filtrer les valeurs d'entrée d'un texte
<input>
avec leinputFilter
plugin suivant (prend en charge Copier + Coller, Glisser + Déposer, raccourcis clavier, opérations de menu contextuel, touches non typables, position du curseur, différent dispositions du clavier et tous les navigateurs depuis IE 9 ):Vous pouvez maintenant utiliser le
inputFilter
plugin pour installer un filtre d'entrée:Voir la démo JSFiddle pour plus d'exemples de filtre d'entrée. Notez également que vous devez toujours effectuer la validation côté serveur!
JavaScript pur (sans jQuery)
jQuery n'est pas réellement nécessaire pour cela, vous pouvez également faire la même chose avec du JavaScript pur. Voir cette réponse .
HTML 5
HTML 5 a une solution native avec
<input type="number">
(voir la spécification ), mais notez que la prise en charge du navigateur varie:step
,min
et lesmax
attributs.e
etE
dans le champ. Voir aussi cette question .Essayez- le vous-même sur w3schools.com .
la source
Voici la fonction que j'utilise:
Vous pouvez ensuite l'attacher à votre contrôle en faisant:
la source
return this.each(function()
?each
fromreturn this.each(function()
permet d'autoriser plusieurs objets comme l'a dit HaggleLad, et lareturn
partie consiste à renvoyer l'objet jQuery à l'appelant, pour permettre le chaînage tel que$("input[type='text'").ForceNumericOnly().show()
En ligne:
Style discret (avec jQuery):
la source
onkeyup="if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')"
./[^0-9]|^0+(?!$)/g
empêcher les premières séries de zéro.Vous pouvez simplement utiliser une simple expression régulière JavaScript pour tester les caractères purement numériques:
Cela renvoie vrai si l'entrée est numérique ou faux sinon.
ou pour le keycode d'événement, utilisation simple ci-dessous:
la source
Vous pouvez utiliser sur l'événement d'entrée comme ceci:
Mais, quel est ce privilège de code?
la source
decimal
entre0.0
à24.0
Je ne peux pas le laisser entrer dans le.
this.value = Number(this.value.replace(/\D/g, ''));
Court et doux - même si cela ne trouvera jamais beaucoup d'attention après plus de 30 réponses;)
la source
Utilisez la fonction JavaScript isNaN ,
if (isNaN (document.getElementById ('inputid'). val ()))Mise à jour: Et voici un bel article à ce sujet mais en utilisant jQuery: Restreindre l'entrée dans les zones de texte HTML aux valeurs numériques
la source
document.getElementById('inputid').val()
mec .. c'est toujours jquery..val()
est une chose jquery. utilisation.value
isNaN
seule est une mauvaise idée en raison de la coercition de type JavaScript.decimal
entre0.0
à24.0
je ne peux pas le laisser entrer dans le.
Source: http://snipt.net/GerryEng/jquery-making-textfield-only-accept-numeric-values
la source
J'utilise ceci dans notre fichier js commun interne. J'ajoute simplement la classe à toute entrée qui a besoin de ce comportement.
la source
Le plus simple pour moi est
la source
this.value.replace(/[^0-9\.]/g,'');
pour inclure les exigences OP de 0-9Pourquoi si compliqué? Vous n'avez même pas besoin de jQuery car il existe un attribut de modèle HTML5:
Ce qui est cool, c'est qu'il fait apparaître un clavier numérique sur les appareils mobiles, ce qui est bien mieux que d'utiliser jQuery.
la source
Vous pouvez faire de même en utilisant cette solution très simple
J'ai fait référence à ce lien pour la solution. Cela fonctionne parfaitement !!!
la source
decimal
entre0.0
à24.0
Je ne peux pas le laisser entrer dans le.
Vous pouvez essayer la saisie du nombre HTML5 :
Pour les navigateurs non conformes, il existe des solutions de repli Modernizr et Webforms2 .
la source
L'attribut pattern en HTML5 spécifie une expression régulière par rapport à laquelle la valeur de l'élément est vérifiée.
Remarque: l'attribut de modèle fonctionne avec les types d'entrée suivants: texte, recherche, URL, tél, e-mail et mot de passe.
[0-9] peut être remplacé par n'importe quelle condition d'expression régulière.
{1,3} il représente un minimum de 1 et un maximum de 3 chiffres peuvent être saisis.
la source
decimal
entre0.0
à24.0
Je ne peux pas le laisser entrer dans le.
Quelque chose d'assez simple en utilisant jQuery.validate
la source
fonction suppressNonNumericInput (événement) {
la source
decimal
entre0.0
à24.0
Je ne peux pas le laisser entrer dans le.
Je suis arrivé à une solution très bonne et simple qui n'empêche pas l'utilisateur de sélectionner du texte ou de copier-coller comme le font d'autres solutions. Style jQuery :)
la source
Vous pouvez utiliser cette fonction JavaScript:
Et vous pouvez le lier à votre zone de texte comme ceci:
J'utilise ce qui précède dans la production, et cela fonctionne parfaitement, et c'est multi-navigateur. De plus, il ne dépend pas de jQuery, vous pouvez donc le lier à votre zone de texte avec JavaScript en ligne:
la source
Je pense que ça va aider tout le monde
la source
if(event.which!=8 && event.which!=0 && (event.which<48 || event.which>57) && (event.which<96 || event.which>105)) return;
J'ai écrit le mien basé sur le post de @ user261922 ci-dessus, légèrement modifié pour que vous puissiez tout sélectionner, tabuler et gérer plusieurs champs "nombre uniquement" sur la même page.
la source
Voici une solution rapide que j'ai créée il y a quelque temps. vous pouvez en savoir plus à ce sujet dans mon article:
http://ajax911.com/numbers-numeric-field-jquery/
la source
Vous souhaitez autoriser l'onglet:
la source
Voici une réponse qui utilise la fabrique de widgets jQuery UI. Vous pouvez facilement personnaliser les personnages autorisés.
Cela permettrait des chiffres, des signes numériques et des montants en dollars.
la source
Cela semble incassable.
la source
Vous devez vous assurer que le clavier numérique et la touche de tabulation fonctionnent également
la source
Je voulais aider un peu, et j'ai fait ma version, la
onlyNumbers
fonction ...Ajoutez simplement la balise d'entrée "... input ... id =" price "onkeydown =" return onlyNumbers (event) "..." et vous avez terminé;)
la source
Je voudrais également répondre :)
C'est ça ... juste des chiffres. :) Presque ça peut fonctionner juste avec le 'flou', mais ...
la source
Un moyen simple de vérifier que la valeur entrée est numérique est:
la source
Il suffit d'appliquer cette méthode dans Jquery et vous pouvez valider votre zone de texte pour accepter uniquement le numéro.
Essayez cette solution ici
la source
Vous pouvez essayer la saisie du nombre HTML5:
Cet élément de balise d'entrée prendrait désormais une valeur uniquement comprise entre 0 et 9, car l'attribut min est défini sur 0 et l'attribut max est défini sur 9.
pour plus d'informations, visitez http://www.w3schools.com/html/html_form_input_types.asp
la source