删除drupal中验证失败的表单元素上的红色轮廓

时间:2010-04-30 16:50:36

标签: drupal drupal-themes drupal-theming drupal-forms

当drupal表单验证失败时,会重新绘制,并且红色边框中包含验证失败的元素。 Drupal通过将error类添加到输入元素,并在system.css中的input.error元素上指定2px红色边框来完成此操作。

如果不修改此样式表,如何在特定表单上删除红色边框,同时在网站的其余部分使用默认行为?

我认为解决方案可能需要使用自定义theme_form_element,但我无法弄清楚如何仅自定义单个表单。

请注意,我想这样做而不必诉诸这个jQuery技巧(这确实有用):

$("#edit-name").removeClass('error');

2 个答案:

答案 0 :(得分:2)

您需要从表单项中删除错误类。这可以通过覆盖主题函数来完成,theme_textfieldtheme_textarea ...(每种类型都有一个)

查看包含错误类的$element['#attributes']['class']

修改
要对特定表单元素或表单执行此操作,您可以使用#theme属性或要更改主题函数的表单或元素。

答案 1 :(得分:0)

最简单的方法是不要尝试修改Drupal发现的标记,而是改变与error类关联的样式。

您可以在不修改system.css的情况下执行此操作。只需在主题中添加一个新样式表(或使用现有样式表!)。使用CSS的层叠特性来改变出现错误的元素的方式。添加如下内容:

.error {
  border: 0;
}

......你已经完成了。

要仅定位一个特定表单,请添加另一个选择器,如下所示:

#my-specific-form .error {
  border: 0;
}