4

当一个 drupal 表单验证失败时,它会用红色边框包围的验证失败的元素重新绘制。Drupal 通过将error类添加到输入元素并在system.css.

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

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

请注意,我想这样做而不必求助于这个 jQuery 技巧(确实有效):

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

2 回答 2

2

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

看看$element['#attributes']['class']哪个包含错误类。

编辑
要为特定的表单元素或表单执行此操作,您可以使用#theme要更改主题功能的属性或表单或元素。

于 2010-04-30T18:11:08.660 回答
0

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

您可以在不修改 system.css 的情况下做到这一点。只需在您的主题中添加一个新样式表(或使用现有的!)。使用 CSS 的级联特性来改变错误元素的出现方式。添加类似:

.error {
  border: 0;
}

...你就完成了。

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

#my-specific-form .error {
  border: 0;
}
于 2016-09-13T23:43:48.680 回答