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