قم بإزالة المخطط الأحمر على عناصر النماذج التي تفشل في التحقق من الصحة في دروبال

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

سؤال

عندما يفشل نموذج دروبال في التحقق من الصحة ، يتم إعادة رسمها بالعناصر التي فشلت التحقق من الصحة المحاطة بحدود حمراء. Drupal يفعل هذا عن طريق إضافة error فئة إلى عناصر الإدخال ، وتحديد حدود حمراء 2 بكسل على إدخال. system.css.

دون تعديل ورقة الأنماط هذه ، كيف يمكنني إزالة الحدود الحمراء على نموذج معين فقط ، أثناء استخدام السلوك الافتراضي في بقية الموقع؟

أعتقد أن الحل قد يتطلب استخدام العرف theme_form_element, ، لكن لا يمكنني معرفة كيفية تخصيص نموذج واحد فقط.

لاحظ أنني أرغب في القيام بذلك دون الحاجة إلى اللجوء إلى خدعة jQuery هذه (التي تعمل):

$("#edit-name").removeClass('error');
هل كانت مفيدة؟

المحلول

ستحتاج إلى إزالة فئة الخطأ من عناصر النموذج. يمكن القيام بذلك عن طريق الكتابة فوق وظائف السمة ، في theme_textfield, theme_textarea ... (هناك واحد لكل نوع)

ألق نظرة على $element['#attributes']['class'] الذي يحتوي على فئة الخطأ.

تعديل
للقيام بذلك لعنصر أو نموذج معين ، يمكنك استخدام #theme قم بموافقة أو إما النموذج أو العنصر الذي تريد تغيير وظيفة Theming.

نصائح أخرى

أسهل طريقة هي عدم محاولة تعديل العلامات التي يكتشفها دروبال ، ولكن بدلاً من ذلك لتغيير الأنماط المرتبطة بـ error صف دراسي.

يمكنك القيام بذلك دون تعديل system.css. ما عليك سوى إضافة ورقة أنماط جديدة في موضوعك (أو باستخدام واحد موجود!). استخدم الطبيعة المتتالية لـ CSS لتغيير الطريقة التي تظهر بها العناصر ذات الأخطاء. أضف شيئًا مثل:

.error {
  border: 0;
}

... وأنت انتهيت.

لاستهداف نموذج واحد محدد فقط ، أضف محددًا آخر ، مثل ذلك:

#my-specific-form .error {
  border: 0;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top