actuellement j'ai le code suivant
<input type="number" />
il ressort de quelque chose comme ça
Les petits éléments de sélection à droite permettent au nombre de devenir négatif. Comment puis-je empêcher cela?
J'ai des doutes sur l'utilisation type="number"
, cela cause plus de problèmes que ça ne résout, je vais quand même le vérifier, alors devrais-je simplement recommencer à utiliser type="text"
?
Réponses:
Ajouter un
min
attributla source
min="0.000001"
aidera dans la plupart des cas. Plus de 6 décimales, JavaScript le convertira au format exposant.J'ai trouvé une autre solution pour éviter un nombre négatif.
la source
oninput="validity.valid||(value='');"
empêche l'un de taper des nombresCela dépend de la précision que vous souhaitez être. Si vous souhaitez n'accepter que des entiers, alors:
Si vous voulez des flottants avec, par exemple, deux chiffres après le point décimal:
la source
max
valeur.Vous pouvez forcer l'entrée à contenir uniquement un entier positif en ajoutant
onkeypress
dans lainput
balise.Ici,
event.charCode >= 48
garantit que seuls les nombres supérieurs ou égaux à 0 sont renvoyés, tandis que lamin
balise garantit que vous pouvez atteindre un minimum de 1 en faisant défiler la barre de saisie.la source
Vous pouvez utiliser ce qui suit pour
type="number"
accepter uniquement les nombres positifs:la source
Vous pouvez empêcher la saisie négative dans un formulaire de saisie de nombres de la manière suivante:
la source
Essayer
<input type="number" pattern="^[0-9]" title='Only Number' min="1" step="1">
la source
Si vous avez besoin de saisie de texte , le modèle fonctionne également
la source
Je ne trouve pas la solution parfaite car certains travaux pour la saisie mais pas pour le copier-coller, certains sont l'inverse. Cette solution fonctionne pour moi. Il empêche de nombre négatif, en tapant "e", copier et coller du texte "e".
créer une fonction.
ajoutez ces propriétés à l'entrée. ces deux empêchent de copier et coller du texte non numérique, y compris "e". vous devez avoir les deux ensemble pour prendre effet.
Si vous utilisez Vue, vous pouvez consulter cette réponse ici . Je l'ai extrait dans un mixin qui peut être réutilisé.
la source
ajoutez ce code dans votre type d'entrée;
par exemple:
la source
Une autre solution consiste à utiliser Js pour le rendre positif (l'option min peut être désactivée et n'est pas valide lorsque l'utilisateur tape smth) L'événement négatif si n'est pas nécessaire et on ('keydown') peut également être utilisé!
la source
Cela dépend si vous voulez un champ int ou float. Voici à quoi ressembleraient les deux:
Le champ int a la validation correcte qui lui est attachée, puisque son min est 1. Le champ float accepte 0, cependant; pour y faire face, vous pouvez ajouter un validateur de contrainte supplémentaire :
JSFiddle ici.
Notez qu'aucune de ces solutions n'empêche complètement l'utilisateur d'essayer de taper une entrée non valide, mais vous pouvez appeler
checkValidity
oureportValidity
déterminer si l'utilisateur a tapé une entrée valide.Bien sûr, vous devriez toujours avoir une validation côté serveur car l'utilisateur peut toujours ignorer la validation côté client.
la source
Essaye ça:
null
etnegitive
valeurs.la source
Si vous essayez d'entrer un nombre négatif, l'événement onkeyup bloque cela et si vous utilisez la flèche sur le numéro d'entrée, l'événement onblur résout cette partie.
la source
la source
Avec le type d'entrée de texte, vous pouvez l'utiliser pour une meilleure validation,
la source
Essaye ça:
la source