Vous pouvez combiner tous ces éléments comme ceci :
<input name="myinput_drs"
oninput="maxLengthCheck(this)"
type = "number"
maxlength = "3"
min = "1"
max = "999" />
<script>
// This is an old version, for a more recent version look at
// https://jsfiddle.net/DRSDavidSoft/zb4ft1qq/2/
function maxLengthCheck(object)
{
if (object.value.length > object.maxLength)
object.value = object.value.slice(0, object.maxLength)
}
</script>
Mise à jour :
Vous pourriez également vouloir empêcher la saisie de tout caractère non numérique, car object.length
serait une chaîne vide pour les entrées numériques, et sa longueur serait donc de 0
. Ainsi, le maxLengthCheck
ne fonctionnera pas.
Solution :
Voir este o este par exemple.
Démo - Voir la version complète du code ici :
http://jsfiddle.net/DRSDavidSoft/zb4ft1qq/1/
Mise à jour 2 : Voici le code de mise à jour : https://jsfiddle.net/DRSDavidSoft/zb4ft1qq/2/
Mise à jour 3 : Veuillez noter que le fait d'autoriser la saisie de plus d'un point décimal peut perturber la valeur numérique.
5 votes
Pour les personnes qui recherchent une meilleure solution, celle-ci est la meilleure : stackoverflow.com/questions/9361193/
5 votes
L'attribut max ne fonctionne pas dans le navigateur chrome sur la tablette Android.
4 votes
@ÜnsalKorkmaz : cette solution a l'inconvénient de ne pas faire apparaître le pavé numérique sur les appareils Android.
0 votes
Pour répondre aux commentaires mentionnés ici, j'ai fourni une version améliorée. stackoverflow.com/questions/8354975/