Merci à tous d'avance. J'ai écrit une entrée avec type = nombre. En raison des besoins professionnels, seuls des chiffres peuvent être saisis dans cette entrée, et les signes plus et moins ne peuvent pas être saisis.
Je voulais à l'origine juger la valeur de l'entrée et supprimer manuellement les signes plus, les signes moins et les points redondants, mais j'ai découvert qu'une fois la valeur saisie illégale, la valeur de l'entrée était convertie en une chaîne vide ''. De cette façon, je ne peux pas obtenir la valeur en entrée.
J'y réfléchis depuis longtemps mais je ne connais pas la solution. S'il vous plaît, aidez-moi, merci~
Au fait, j'ai écrit la page en vue~~~
Utilisez une expression régulière pour faire correspondre '^[-]?[0-9]*.?[0-9]+(eE?[0-9]+)?$'
Vous pouvez utiliser cette méthode pour surveiller les modifications de la valeur d'entrée. Si vous constatez que la vérification échoue, vous serez invité.
Publiez vos js et jetez un oeil
onkeyup="this.value=this.value.replace(/D/g,'')" onafterpaste="this.value=this.value.replace(/D/g,'')"
type=number ne devrait pas pouvoir empêcher directement les utilisateurs de saisir des signes positifs et négatifs, e et plusieurs points décimaux.
Il faut encore le juger par la valeur de l'entrée.
En ce qui concerne le problème selon lequel la valeur d'entrée est illégale et que la valeur d'entrée est convertie en une chaîne vide,
Vous pouvez changer le type d'entrée en texte, puis utiliser des expressions régulières et les remplacer pour supprimer les non-chiffres et plusieurs points décimaux.
Ensuite, vous pouvez utiliser v-model pour lier une valeur, puis surveiller la valeur via watch. Mais lorsque vous trouvez une valeur illégale, supprimez simplement la chaîne illégale
.<input type="tel" />