لدي إدخال من نوع كلمة المرور مع minLength 8 ، ولدي مفتاح تبديل لتغيير النوع إلى نص (تبديل كلمة المرور).
عندما أكتب بطول <8 وأضغط على إرسال ، فهذا يمنعني من الإرسال. ولكن ، عندما أقوم بتبديل كلمة المرور بحيث تقوم بتغيير النوع إلى نص وإرسال النموذج ، يمكن إرسالها. راجع للشغل باستخدام useRef ()
نسخة رد الفعل:
رد فعل: ^ 17.0.1
رد فعل دوم: ^ 17.0.1
رابط لمثال الرمز: DEMO
يتم إرسال النموذج حتى عندما يكون أقل من minLength
لا يتم إرسال النموذج عندما يكون تحت minLength
شكرا على التقرير.
يمكنني تحديد مشكلتين:
minLength="3"
وليس 8.minLength
غير مدعوم في IE 11: https://caniuse.com/input-minlengthأنا أستخدم نظام التشغيل mac OS 10.14.6 ومتصفح Safari 13.0.5 (14608.5.12)
نسيت شيئًا ، لا تكتب أي أحرف بعد تبديله
راجع للشغل ، عندما أحاول استخدام Chrome 86.0.4240.183 ، فإنه يعمل بشكل جيد. أعتقد أن ذلك يحدث فقط في رحلات السفاري
شكرا ، يمكنني إعادة إنتاج هذا.
بشكل عام ، يتم تجاهل أي عملية تحقق من الصحة إذا كان الإدخال أصليًا. إذا قمت بإرسال النموذج دون كتابة أي شيء ، فسيتم تجاهل minLength
.
يقوم Safari بتحديد النموذج على أنه غير صالح بشكل صحيح إذا كتبت شيئًا لا يجتاز جميع القيود. ومع ذلك ، عندما يتغير type
يبدو أن Safari يأخذ بعين الاعتبار المدخلات الأصلية. لذلك يتم إرسال قيمة غير صالحة إذا تم تغيير type
بعد اكتمال الكتابة.
السؤال هو ما إذا كان بإمكان React أو يجب أن يصلح هذه المشكلة أو ما إذا كان يجب على Safari إصلاح ذلك.
يحرر:
الحد الأدنى من repro دون أي رد فعل: https://codesandbox.io/s/condescending-bhabha-n4374؟file=/src/index.js
إذا كنت بحاجة إلى هذا السلوك ، أقترح تقديم خطأ في Safari.
التعليق الأكثر فائدة
شكرا ، يمكنني إعادة إنتاج هذا.
بشكل عام ، يتم تجاهل أي عملية تحقق من الصحة إذا كان الإدخال أصليًا. إذا قمت بإرسال النموذج دون كتابة أي شيء ، فسيتم تجاهل
minLength
.يقوم Safari بتحديد النموذج على أنه غير صالح بشكل صحيح إذا كتبت شيئًا لا يجتاز جميع القيود. ومع ذلك ، عندما يتغير
type
يبدو أن Safari يأخذ بعين الاعتبار المدخلات الأصلية. لذلك يتم إرسال قيمة غير صالحة إذا تم تغييرtype
بعد اكتمال الكتابة.السؤال هو ما إذا كان بإمكان React أو يجب أن يصلح هذه المشكلة أو ما إذا كان يجب على Safari إصلاح ذلك.
يحرر:
الحد الأدنى من repro دون أي رد فعل: https://codesandbox.io/s/condescending-bhabha-n4374؟file=/src/index.js
إذا كنت بحاجة إلى هذا السلوك ، أقترح تقديم خطأ في Safari.