L' maxlength
attribut ne fonctionne pas avec <input type="number">
. Cela se produit uniquement dans Chrome.
<input type="number" class="test_css" maxlength="4" id="flight_number" name="number"/>
la source
L' maxlength
attribut ne fonctionne pas avec <input type="number">
. Cela se produit uniquement dans Chrome.
<input type="number" class="test_css" maxlength="4" id="flight_number" name="number"/>
D'après la documentation de MDN pour<input>
Si la valeur du genre attribut est
text
,search
,password
,tel
ouurl
, cet attribut spécifie le nombre maximal de caractères (en points de code Unicode) que l'utilisateur peut entrer; pour les autres types de contrôle, il est ignoré.
maxlength
Est donc ignoré <input type="number">
par la conception.
En fonction de vos besoins, vous pouvez utiliser les min
et max
attributs Inon suggéré dans son / sa réponse (NB: cela ne définir une plage contrainte, pas la longueur de caractère réel de la valeur, mais -9999 à 9999 couvrira tous les 0-4 chiffres), ou vous pouvez utiliser une saisie de texte standard et appliquer la validation sur le champ avec le nouvel pattern
attribut:
<input type="text" pattern="\d*" maxlength="4">
type="number"
s'agit d'un nouveau type de la spécification HTML 5. Si le navigateur que vous testez en ne reconnaît pastype="number"
qu'il traitera commetype="text"
qui ne respecte l'maxlength
attribut. Cela peut expliquer le comportement que vous voyez.type=number
entrée en définissant l'max
attribut. Cet attribut restreint uniquement le nombre choisi par le spinner d'entrée.\d*
t-il ici?regex
et pattern est incroyablement créatif. Mais dans le mobile, pas différentAndroid
ouiOS
, c'est unetext
entrée donc ça cause un malUX
.La longueur maximale ne fonctionnera pas avec
<input type="number"
la meilleure façon que je sache est d'utiliser l'oninput
événement pour limiter la longueur maximale. Veuillez voir le code ci-dessous.la source
||0/1
oninput="this.value=this.value.slice(0,this.maxLength)"
devrait marcher<input type="number">
stackoverflow.com/questions/18510845/…Beaucoup de gars ont posté un
onKeyDown()
événement qui ne fonctionne pas du tout, c'est-à-dire que vous ne pouvez pas supprimer une fois que vous avez atteint la limite. Donc, au lieu d'onKeyDown()
utiliseronKeyPress()
et cela fonctionne parfaitement bien.Ci-dessous est le code de travail:
la source
number
type d'entrée html5J'ai deux façons de le faire
Premièrement: utilisez
type="tel"
, cela fonctionnera commetype="number"
dans un mobile et acceptez maxlength:Deuxièmement: utilisez un peu de JavaScript:
la source
Vous pouvez utiliser les attributs min et max .
Le code suivant fait de même:
la source
9999
l'utilisateur peut saisir manuellement un nombre qui dépasse cette longueur.Changez votre type d'entrée en texte et utilisez l'événement "oninput" pour appeler la fonction:
Utilisez maintenant Javascript Regex pour filtrer les entrées utilisateur et les limiter aux nombres uniquement:
Démo: https://codepen.io/aslami/pen/GdPvRY
la source
Une fois, je suis entré dans le même problème et j'ai trouvé cette solution en fonction de mes besoins. Cela peut aider quelqu'un.
Happy Coding :)
la source
Vous pouvez également essayer ceci pour la saisie numérique avec restriction de longueur
la source
tel
entrée sera automatiquement validée en tant que telle et dans certains cas étranges, les0
s principaux seront changés en1
s.DÉMO - JSFIDDLE
la source
Voici ma solution avec jQuery ... Vous devez ajouter maxlength à votre type d'entrée = nombre
Et gérer le copier-coller:
J'espère que ça aide quelqu'un.
la source
this.value = this.value.slice(0, this.maxLength);
pensez-vous que cela a un problème? Je n'en ai pas trouvé jusqu'à présent. Il couvre également le texte collé.D'après mon expérience, la plupart des problèmes où les gens demandent pourquoi
maxlength
est ignoré, c'est parce que l'utilisateur est autorisé à entrer plus que le nombre de caractères "autorisé".Comme d'autres commentaires l'ont indiqué, les
type="number"
entrées n'ont pas d'maxlength
attribut et ont plutôt un attributmin
andmax
.Pour que le champ limite le nombre de caractères pouvant être insérés tout en permettant à l'utilisateur d'en être conscient avant l'envoi du formulaire (le navigateur doit identifier la valeur> max sinon), vous devrez (pour l'instant, au moins) ajouter un auditeur sur le terrain.
Voici une solution que j'ai utilisée dans le passé: http://codepen.io/wuori/pen/LNyYBM
la source
Je sais qu'il y a déjà une réponse, mais si vous voulez que votre entrée se comporte exactement comme l'
maxlength
attribut ou aussi près que possible, utilisez le code suivant:la source
Chrome (techniquement, Blink) n'implémentera pas maxlength pour
<input type="number">
.La spécification HTML5 indique que maxlength n'est applicable qu'aux types texte, URL, e-mail, recherche, tél et mot de passe.
la source
La solution absolue que je viens d'essayer est:
la source
Je vais le faire rapidement et facilement à comprendre!
Au lieu de maxlength pour
type='number'
(maxlength est destiné à définir la quantité maximale de lettres pour une chaîne dans untext
type), utilisezmin=''
etmax=''
.À votre santé
la source
<input type="number">
est juste que ... une entrée numérique (quoique non convertie d'une chaîne pour flotter via Javascript).Je suppose que cela ne restreint pas les caractères sur la saisie de clé par
maxLength
ou sinon votre utilisateur pourrait être coincé dans un "piège à clé" s'il a oublié une décimale au début (essayez de mettre un.
index at1
quand une<input type"text">
attr "maxLength" a déjà été atteinte ). Il sera cependant validé sur le formulaire soumis si vous définissez unmax
attribut.Si vous essayez de restreindre / valider un numéro de téléphone, utilisez la
type="tel"
valeur attr /. Il obéit à l'maxLength
attr et fait apparaître le clavier numérique mobile uniquement (dans les navigateurs modernes) et vous pouvez restreindre la saisie à un modèle (par exemplepattern="[0-9]{10}"
).la source
Pour les utilisateurs de React,
Remplacez simplement 10 par votre longueur maximale requise
la source
maxlenght - texte du type d'entrée
en utilisant jQuery:
maxlenght - numéro de type d'entrée
JS
HTML
la source