قم بإزالة المخطط الأحمر على عناصر النماذج التي تفشل في التحقق من الصحة في دروبال
-
02-10-2019 - |
سؤال
عندما يفشل نموذج دروبال في التحقق من الصحة ، يتم إعادة رسمها بالعناصر التي فشلت التحقق من الصحة المحاطة بحدود حمراء. 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;
}