321 votes

HTML5 : type d’entrée numéro qui accepte uniquement les nombres entiers ?

Je suis en utilisant les Outils de jQuery Validateur qui met en HTML5 validations grâce à jQuery. C'est très bien fonctionné jusqu'à présent, sauf pour une chose. Dans la spécification HTML5, le type d'entrée "nombre" peut avoir les deux nombres entiers et les nombres à virgule flottante. Cela semble incroyablement courte vue, car il ne sera un utile du programme de validation lors de votre champs de base de données sont signés des nombres à virgule flottante (non signés, ints, vous devrez revenir au "pattern" de validation et donc perdre des fonctionnalités supplémentaires telles que les flèches haut et bas pour les navigateurs qui le supportent). Est-il un autre type d'entrée ou peut-être un attribut qui permettrait de limiter la saisie à juste des entiers non signés? Je ne pouvais pas trouver tout, merci.

MODIFIER

Ok les gars, je vous remercie de votre temps et de l'aide, mais je vois beaucoup de imméritée jusqu'à droit de vote en cours :D. Réglage de l'étape 1 n'est pas la réponse car elle n'a pas de limiter la saisie. Vous pouvez toujours taper négatif d'un nombre à virgule flottante dans la zone de texte. Aussi, je suis conscient de modèle de validation (comme je l'avais mentionné dans mon premier post), mais qui ne faisait pas partie de la question. Je voulais savoir si le HTML5 a permis de réduire une entrée de type "nombre" positif des valeurs entières. À cette question, la réponse, il semble, serait "non, il ne le fait pas". Je ne voulais pas utiliser de modèle de validation, car cela entraîne quelques inconvénients lors de l'utilisation des Outils de jQuery de validation, mais il semble maintenant que la spécification n'est pas de permettre une manière plus propre de le faire.

372voto

Aurélien Ooms Points 703

http://www.w3.org/TR/html-Markup/Input.Number.html

Le meilleur que vous pouvez réaliser avec le HTML seulement

206voto

js-coder Points 3063

Définir l' step de l'attribut 1:

<input type="number" step="1" />

Cela semble un peu buggy dans Chrome en ce moment donc il pourrait ne pas être la meilleure solution pour le moment.

Une meilleure solution est d'utiliser l' pattern d'attribut, qui utilise une expression régulière pour correspondre à l'entrée:

<input type="text" pattern="\d*" />

\d est l'expression régulière pour un certain nombre, * signifie qu'il n'accepte plus que l'un d'entre eux. Voici la démo: http://jsfiddle.net/b8NrE/1/

43voto

thejustv Points 16
<pre><code></code><p>En utilisant ce code, l’entrée à la limite de champ de texte pour entrer seulement les chiffres... Modèle est le nouvel attribut disponible en HTML5</p><p><a href="http://www.w3schools.com/tags/att_input_pattern.asp" rel="nofollow">Bagout attribut doc</a></p></pre>

19voto

karthick Points 9

Ce n’est pas seulement pour html5 que navigateur tout fonctionne très bien. Essayez ce onkeyup="this.value=this.value.replace (/ [^ 0-9] / g,'') ; »

2voto

wilsonfoz Points 188

Oui, HTML5 ne. Essayez ce code (w3school) :

Voir le paramètre min et max ? J’ai essayé en utilisant Chrome 19 (travaillé) et 12 de Firefox (ne fonctionne pas).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X