J'ai une entrée avec un mot de passe de type avec minLength 8, et j'ai une bascule pour changer le type en texte (bascule de mot de passe).
lorsque je tape avec une longueur < 8 et que j'appuie sur soumettre, cela empêche de soumettre. mais, lorsque je bascule le mot de passe pour qu'il change le type en texte et soumet le formulaire, il peut être soumis. d'ailleurs j'utilise useRef()
Réagir version :
réagir : ^17.0.1
réagir-dom: ^17.0.1
Lien vers l'exemple de code : DEMO
Le formulaire est soumis même s'il est inférieur à minLength
Le formulaire n'est pas soumis lorsqu'il est sous minLength
Merci pour le rapport.
Je peux repérer deux problèmes :
minLength="3"
pas 8.minLength
n'est pas pris en charge dans IE 11 : https://caniuse.com/input-minlengthJ'utilise mac os 10.14.6 et le navigateur Safari 13.0.5 (14608.5.12)
j'ai oublié quelque chose, ne tapez aucun caractère après l'avoir basculé
d'ailleurs, lorsque j'essaie avec Chrome 86.0.4240.183, cela fonctionne bien. je pense que cela n'arrive qu'en safari
Merci, je peux reproduire ça.
En général, toute validation est ignorée si l'entrée est vierge. Si vous soumettez le formulaire sans rien taper, le minLength
est ignoré.
Safari marque correctement le formulaire comme non valide si vous avez tapé quelque chose qui ne respecte pas toutes les contraintes. Cependant, lorsque le type
change, Safari semble considérer l'entrée vierge. Par conséquent, une valeur non valide est soumise si le type
modifié une fois la saisie terminée.
La question est de savoir si React peut ou devrait corriger cette bizarrerie ou si Safari devrait résoudre ce problème.
Éditer:
Reproduction minimale sans aucune réaction : https://codesandbox.io/s/condescending-bhabha-n4374?file=/src/index.js
Si vous avez besoin de ce comportement, je vous suggère de signaler un bogue avec Safari.
Commentaire le plus utile
Merci, je peux reproduire ça.
En général, toute validation est ignorée si l'entrée est vierge. Si vous soumettez le formulaire sans rien taper, le
minLength
est ignoré.Safari marque correctement le formulaire comme non valide si vous avez tapé quelque chose qui ne respecte pas toutes les contraintes. Cependant, lorsque le
type
change, Safari semble considérer l'entrée vierge. Par conséquent, une valeur non valide est soumise si letype
modifié une fois la saisie terminée.La question est de savoir si React peut ou devrait corriger cette bizarrerie ou si Safari devrait résoudre ce problème.
Éditer:
Reproduction minimale sans aucune réaction : https://codesandbox.io/s/condescending-bhabha-n4374?file=/src/index.js
Si vous avez besoin de ce comportement, je vous suggère de signaler un bogue avec Safari.