2013-09-24 50 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'); 
}