如何以编程方式向一段代码添加一个css类?

问题描述:

我有这个代码,只需粘贴drupal(7)搜索表单,无论我需要什么。如何以编程方式向一段代码添加一个css类?

<?php print drupal_render(drupal_get_form('search_block_form')); ?> 

的事情是,there's没有办法,我的目标是特定input[type="text"]没有页面内修改其他文本输入。

从来就试图把代码包装成一个类DIV,let's说特殊的搜索形式,所以我只是做

.special-search-form input[type="text"] {} 

但是,不需额外做。 有没有办法在drupal_render()调用中添加一个类?

+0

嗯,你可以修改的视图的'search_block_form' – tonyjmnz 2013-03-11 16:25:20

+0

你试过只是'。特殊的搜索形式input'无'[type =“text]'end? – 2013-03-11 16:25:41

+0

是的,它什么也没做...... – Rosamunda 2013-03-11 17:54:14

有两种处理方法。

A)通过一个模块

function hook_form_alter(&$form, &$form_state, $form_id) { 
    switch ($form_id) { 
    case 'search_block_form': 
     $form['#attributes']['class'][] = 'extra_class'; 
     break; 
    } 
} 

我想这也可能工作太,但我需要澄清的是...

function hook_search_block_form_alter(...) { 
    $form['#attributes']['class'][] = 'extra_class'; 
} 

B)通过一个主题[搜索 - 嵌段form.tpl.php]

<div class="extra_class"> 
    <?php echo $search_form; ?> 
</div> 
+0

谢谢!但是这些类不影响所有的serch形式吗?有没有一种方法来定位一个特殊的类型?搜索表单在页面顶部,另一个在页面底部)。 – Rosamunda 2013-03-11 17:53:51

你可以尝试使用形式ID为root CS上课。喜欢的东西:

#search-block-form input {} 

或者更详细地定义它:

#search-block-form input[name="search_block_form"] {}