Prévenir des entrées dans le formulaire input type=“number”?
Je veux restreindre l'entrée d'utilisateur pour les nombres positifs, dans un formulaire html.
Je sais que vous pouvez définir min="0", il est cependant possible de contourner cette en entrant manuellement un nombre négatif.
Est-il un autre moyen de résoudre ce sans écrire une fonction de validation?
- En HTML 5 u peut faire comme ceci: <input type="number" name="quantite" min="0">, et je pense que c'est la façon la plus élégante pour limiter l'entrée d'utilisateur pour les nombres positifs, sans écrire une fonction de validation.
- Ce qui a été mentionné dans la question, ainsi que ses limites.
- Sachez que les utilisateurs peuvent toujours contourner ces limitations! Si vous soumettez rien à côté serveur (lire db ou d'extraction de données fonctions de), vous devez valider une fois de plus de toute façon.
Vous devez vous connecter pour publier un commentaire.
Ce utilise du Javascript, mais vous n'avez pas à écrire votre propre routine de validation. Au lieu de cela il suffit de cocher la
validity.valid
de la propriété. Ce sera vrai si et seulement si l'entrée se situe dans la plage.HTML:
<input type="number" name="test" min=0 save="" oninput="validity.valid ? this.save = value : value = this.save;">
Évidemment, cela ne devrait pas être utilisé comme... Vous devez écrire votre propre fonction de gestionnaire qui vérifie la validité.valide et fait la bonne chose.Ce n'est pas possible sans la validation de la valeur de l'entrée.
Puisque c'est une chaîne de caractères représentant le nombre il n'y a aucun moyen d'être sûr que la chaîne peut être représentant des valeurs numériques ou non.
Le Permis attributs ne vous donnera pas la possibilité de valider la valeur de la saisie du numéro de contrôle.
Une façon de le faire avec l'aide de JavaScript pourrait ressembler à ceci.
JS:
HTML:
Si vous êtes de rabotage sur l'envoi de vos données sur un serveur assurez-vous de valider les données sur le serveur en tant que bien.
Côté Client JavaScript ne peut pas garantir que les données en cours d'envoi sera ce que vous en attendez.
Si vous voulez vous assurer que la valeur par défaut, j'.e valeur min, ou toute autre valeur, c'est la solution de travail. C'est aussi la prévention pour effacer le champ de saisie. Même façon, vous pouvez définir à la valeur max ainsi.
HTML:
Le script suivant permet uniquement de chiffres ou de retour arrière pour être entré dans l'entrée.
JS:
HTML:
type="number"
déjà résout permettant uniquement des chiffres à taper comme d'autres réponses ici, point de sortir.Juste pour la référence: avec jQuery, vous pouvez remplacer les valeurs négatives sur focusout avec le code suivant:
Cela ne remplace pas de côté de serveur de validation!!!