表单验证失败后,Drupal 7缺少css规则

时间:2013-09-24 07:34:13

标签: css forms validation drupal-7 form-api

我正在尝试验证自定义模块表单。即使我使用hook_validate或在提交按钮中使用#validate属性,验证也会像魅力一样工作。问题是在验证失败后,表单会丢失我附加到模块的css样式。我使用.info文件将css附加到模块上。我还尝试使用drupal_add_css或#attached属性重新附加验证函数底部的css。 如果有人有同样的问题,请告诉我。我会感激任何想法或任何帮助。 感谢。

2 个答案:

答案 0 :(得分:2)

如果有人遇到同样的问题我找到了解决方案。验证后,Drupal会更改html表单ID。如果您正在使用基于表单ID的css选择器,只需使用表单创建功能中某处的#attributes表单属性向表单添加自定义类名称。

$form['#attributes'] = array('class' => array('your_id'));

然后在css文件中使用此类进行各种选择。

OR

您始终可以使用带有通配符的属性CSS选择器。

答案 1 :(得分:1)

使用#afterbuild,这是一个名为$ form ['#after_build']的可选表单元素。

function yourmodulename_form_alter(&$form, $form_state, $form_id) {
  if($form_id == 'thisformid'){
    $form['#after_build'][] = 'yourmodulename_after_build';
  }
}

function yourmodulename_after_build($form, &$form_state) {
  drupal_add_css('your_file.css');
}