Vaadin-combo-box: عالق في حالة غير صالحة

تم إنشاؤها على ٢٢ يوليو ٢٠١٩  ·  6تعليقات  ·  مصدر: vaadin/vaadin-combo-box

وصف


عندما يكون vaadin-combo-box مطلوبًا وتم تحديد vaadin-combo-box ، ولكن لم يتم اختيار أي شيء ، سيتم تمييز vaadin-text-field الداخلي على أنه غير صالح عند إلغاء تحديد vaadin-combo-box . ومع ذلك ، إذا تمت إزالة السمة المطلوبة في هذه الأثناء ، فإن vaadin-text-field الداخلي لا يزال في حالة غير صالحة.

النتيجة المتوقعة


يجب أن يؤدي تغيير السمات (أو على الأقل السمة المطلوبة) في vaadin-combo-box إلى إعادة التحقق من vaadin-text-field .

النتيجة الفعلية


vaadin-text-field عالق في حالة غير صالحة. لا يمكن إرسال النموذج بسبب هذه الحالة غير الصالحة.

عرض حي


https://ring-umbra.glitch.me

خطوات التكاثر

  1. افتح العرض
  2. انقر في vaadin-combo-box . سيتم عرض الخيارات ، لكن لا تحدد عنصرًا (انقر في مكان ما في المساحة البيضاء)
  3. حدد خانة الاختيار لجعل الحقل مطلوبًا.
  4. كرر الخطوة 2 ، سيتلون vaadin-combo-box باللون الأحمر ويكون في حالة غير صالحة.
  5. قم بإلغاء تحديد خانة الاختيار ، لم يعد الحقل مطلوبًا
  6. كرر الخطوة 2 ، سيظل vaadin-combo-box في حالة غير صالحة
  7. حدد شيئًا ما في vaadin-combo-box
  8. استخدم زر المسح لتفريغ vaadin-combo-box : لا يزال vaadin-combo-box في حالة غير صالحة ، على الرغم من أنه لم يعد مطلوبًا.

لا يؤدي تغيير السمة غير الصالحة في vaadin-combo-box حل المشكلة أيضًا ، يبدو أن هذه القيمة لا تنعكس في vaadin-text-field الداخلي.

المتصفحات تتأثر

  • [x] كروم
  • [x] فايرفوكس
  • [] سفاري
  • [x] حافة
  • [x] IE 11
  • [] iOS Safari
  • [] أندرويد كروم

_ أعتقد أن المتصفحات الأخرى بها نفس المشكلة ، ولكن لم أتمكن من اختبارها_

bug

ال 6 كومينتر

يبدو أن هذا خطأ في vaadin-text-field بدلاً من ذلك. vaadin-combo-box فقط بمزامنة الخصائص required و invalid مع الخصائص vaadin-text-field .

أعتقد أن التغيير الديناميكي لحالة required (أو قيود التحقق الأخرى) لم يتم أخذه في الاعتبار عند تطوير المكون.

يعتبر التحقق من الصحة required و pattern و maxlength و minlength . إذا تم تعيين أي من هذه العناصر ، فإنه يقوم بتعيين invalid منطقيًا استنادًا إلى قيمة الإرجاع checkValidity() على الأصل <input> . إذا لم يتم تعيين أي من هؤلاء ، فلا يزال بإمكانك تعيين invalid يدويًا إلى true أو false بناءً على منطقك الخاص و vaadin-text-field يحتفظ بالحالة غير الصالحة كما هي تم تعيينه.

يبدو أن المشكلة هي أنه عندما يكون لديك واحد فقط من قيود التحقق هذه (على سبيل المثال required ) وتم التحقق من صحة الحقل وأصبح غير صالح ، ثم قمت بإزالة القيد ، فلن يتم تشغيل checkValidity() على الإدخال الأصلي بعد الآن ويحتفظ بالحالة invalid (كما لو تمت إضافته يدويًا). بشكل أساسي ، لا يزيل حقل النص تلقائيًا الحالة invalid عند عدم وجود قيود فعالة للتحقق من الصحة.

أعتقد أن المنطق الصحيح هنا هو الملاحظة عند إزالة أي قيود من قيود required أو pattern أو maxlength أو minlength _ و_ invalid == true بالفعل ، ثم قم بتعيين this.invalid = this.inputElement.checkValidity();

يمكن إعادة إنتاج هذا بـ vaadin-text-field فقط من خلال:

<vaadin-text-field required="{{tfRequired}}"></vaadin-text-field><br>
<label>Required <input type="checkbox" checked="{{tfRequired::change}}"></label>
  1. تبديل مربع الاختيار (يجعل حقل النص مطلوبًا)
  2. التركيز وإلغاء التركيز على حقل النص (يجعله غير صالح لأنه لا يزال فارغًا)
  3. تبديل مربع الاختيار (يجعل حقل النص غير مطلوب)
  4. اكتب شيئًا في حقل النص وألغ تركيزه ، ولاحظ أن حقل النص لا يزال يظهر على أنه غير صالح

لقد فتحت مشكلة حول هذا هنا https://github.com/vaadin/vaadin-text-field/issues/400 لكنني سأترك مشكلة مربع التحرير والسرد هذه هنا للحصول على رؤية أفضل إذا لاحظ شخص آخر المشكلة في مربع التحرير والسرد. يجب إغلاق هذا بعد إصلاح مشكلة حقل النص أعلاه.

تم إصدار هذا الإصلاح في vaadin-text-field v2.3.9 و v2.4.10 .

أستطيع أن أؤكد أنه يعمل كما هو متوقع الآن. شكرا على العمل الجيد ،Haprog! 😄

بالمناسبة. تم كسر afaik the WebJars مقابل vaadin-text-field v2.3.9 و v2.4.10 ، لذلك إذا كنت بحاجة إلى استخدام هذه من Java (Vaadin 10–13 أو Vaadin 14 في وضع التوافق) ، فأنت بحاجة إلى الانتظار قليلاً. يجب أن نصدر v2.3.10 و v2.4.11 قريبًا مع WebJars العاملة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

web-padawan picture web-padawan  ·  3تعليقات

mas4ivv picture mas4ivv  ·  16تعليقات

steffen-harbich-cognitum picture steffen-harbich-cognitum  ·  8تعليقات

davidmaxwaterman picture davidmaxwaterman  ·  6تعليقات

web-padawan picture web-padawan  ·  5تعليقات