2013-09-24 45 views
0

我想验证我的自定义模块窗体。即使我使用hook_validate或在提交按钮中使用#validate属性,验证的作用就像魅力一样。问题是,验证失败后,表单会丢失我附加到模块的CSS样式。我使用.info文件将模块附加到模块上。我也尝试使用drupal_add_css或#attached属性重新在验证函数的底部附加css。 如果有人有同样的问题,请让我知道。我会欣赏任何想法或任何帮助。 谢谢。Drupal 7缺少表单验证失败后的css规则

回答

1

如果有人遇到同样的问题,我找到了解决方案。验证后,Drupal更改html表单ID。如果您使用的是基于表单标识的css选择器,只需使用表单创建函数中的#attributes表单属性添加一个自定义类名称。

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

然后使用这个类在你的CSS文件中的各种选择。

您可以随时使用具有通配符的属性CSS选择器。

0

使用#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'); 
}