جافا سكريبت: تعيين وظيفة إلى خاصية من شأنها تشغيل OEW في كل مرة يتم استدعاء فيها الخاصية

StackOverflow https://stackoverflow.com/questions/4979054

سؤال

أنا أجلق مكتبة نموذج HTML5 JS. تتمثل الفكرة في تحويل العناصر التي تحتوي على فئة من البند. البند في المحتوى SEVS قابلة للتحرير، باستخدام سمات بيانات العناصر كتعليمات لنوع عنصر النموذج، والتحقق من الصحة، إلخ يجب إنشاؤه.

الرمز أدناه يخلق كائن التحقق من الصحة للحصول على عنصر نموذج واحد يتحقق لمعرفة ما إذا كان الحد الأدنى من طول القيمة الحقلية. تتضمن خصائص الكائن عنصر DOM الذي ينطبق عليه (EL)، والحد الأدنى للطول للحقل (Minlen)، ورسالة الخطأ (Msgerror) التي يجب عرضها إذا لم يتم استيفاء الحد الأدنى من الطول، وظيفة (إرسال) التي ترجع ما إذا كان الكائن يتحقق، وعرض رسالة الخطأ إذا لم يفعل ذلك.

ومع ذلك، فإن وظيفة إرسال الخاصية إرسال دائما إرجاع خطأ. أنا متأكد من أنني أعرف لماذا، لكنني لست متأكدا من أفضل طريقة لتصحيحها. أعتقد أن المشكلة التي أواجه إليها علاقة بفكرة الإغلاق. يتحقق خصائص إرسال طول Innerhtml لعنصر عنصر النموذج ويقارنه بممتلكات Minlen. لكنني أعتقد أن هذا يحدث فقط في لحظة مثيل كائن التحقق من الصحة، عندما يكون طول Innerhtml.length دائما 0 (نظرا لأن عنصر النموذج، وكائن التحقق من الصحة، يجب إنشاؤه قبل أن يتمكن المستخدم من إدخال أي شيء في الحقل ). كيف يجب أن أقوم بتعديل الرمز أدناه بحيث يتم تشغيل وظيفة تقديم العقار في أي وقت يتم استدعاؤه (وبالتالي التحقق من الطول الحالي من Innerhtml للحقل، بدلا من الطول في لحظة مثيل)؟ giveacodicetagpre.

لقد توصلت إلى حل واحد، وهو ما هو تمرير Innerhtml من عنصر عنصر النموذج كوسيطة لاستكشاف وظيفة الخاصية، مثل هذا: giveacodicetagpre.

ومع ذلك، لا أحب هذا الحل لأنه يبدو زائدة عن الحاجة لإعادة تحديد عنصر DOM في رمز Item.submit (نظرا لأن الكائن يحتوي بالفعل على عنصر DOM في مكان الإلزام الخاص به).

لذلك ... ماذا علي أن أفعل؟

هل كانت مفيدة؟

المحلول

أنا أحمق.كنت أقارن Innerhtml إلى الحد الأدنى من الطول، بدلا من طول Innerhtml إلى الحد الأدنى الطول.الآن يعمل :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top