当drupal表单验证失败时,会重新绘制,并且红色边框中包含验证失败的元素。 Drupal通过将error
类添加到输入元素,并在system.css
中的input.error元素上指定2px红色边框来完成此操作。
如果不修改此样式表,如何在特定表单上删除红色边框,同时在网站的其余部分使用默认行为?
我认为解决方案可能需要使用自定义theme_form_element
,但我无法弄清楚如何仅自定义单个表单。
请注意,我想这样做而不必诉诸这个jQuery技巧(这确实有用):
$("#edit-name").removeClass('error');
答案 0 :(得分:2)
您需要从表单项中删除错误类。这可以通过覆盖主题函数来完成,theme_textfield
,theme_textarea
...(每种类型都有一个)
查看包含错误类的$element['#attributes']['class']
。
修改强>
要对特定表单元素或表单执行此操作,您可以使用#theme
属性或要更改主题函数的表单或元素。
答案 1 :(得分:0)
最简单的方法是不要尝试修改Drupal发现的标记,而是改变与error
类关联的样式。
您可以在不修改system.css的情况下执行此操作。只需在主题中添加一个新样式表(或使用现有样式表!)。使用CSS的层叠特性来改变出现错误的元素的方式。添加如下内容:
.error {
border: 0;
}
......你已经完成了。
要仅定位一个特定表单,请添加另一个选择器,如下所示:
#my-specific-form .error {
border: 0;
}