Html Drupal-用div包围特定的webform元素

Html Drupal-用div包围特定的webform元素,html,css,drupal,drupal-webform,Html,Css,Drupal,Drupal Webform,正如标题所描述的,我将设计一个Web表单,为此,我需要在div中围绕特定字段,以便为它们提供CSS属性,我不知道该如何做 我已经用hook_form_alter抓到了表单,但不知道之后该做什么 有什么帮助吗?在themes template.php文件中,您需要获取表单ID,然后可以执行以下操作: function phptemplate_webform_form_FORM_ID ($form) { $form['#prefix'] = '<div class="CLASS NAME"

正如标题所描述的,我将设计一个Web表单,为此,我需要在div中围绕特定字段,以便为它们提供CSS属性,我不知道该如何做

我已经用hook_form_alter抓到了表单,但不知道之后该做什么


有什么帮助吗?

在themes template.php文件中,您需要获取表单ID,然后可以执行以下操作:

function phptemplate_webform_form_FORM_ID ($form) {
  $form['#prefix'] = '<div class="CLASS NAME">';
  $form['#suffix'] = '</div>';
  return _phptemplate_callback('webform_form_FORM_ID', array('form' => $form));
}
函数phptemplate\u webform\u form\u form\u ID($form){
$form['#prefix']='';
$form['#后缀']='';
返回_phptemplate_回调('webform_form_form_ID',数组('form'=>$form));
}
用您的表单ID替换表单ID

编辑

要为特定字段添加它们,只需执行以下操作(类似操作):

$form['ELEMENT_NAME']['#prefix']='';
$form['ELEMENT_NAME']['#后缀']='';
我没有时间测试它,但是用元素替换元素名称,这应该可以解决您的问题。这里有一个很好的页面-

您可以使用#field_前缀和#field_后缀用任何HTML元素包装字段。见下例:

    function auworks_form_alter(&$form, $form_state, $form_id) {
      switch($form_id) {
        case 'webform_client_form_1':
          $form['submitted']['title']['#field_suffix'] = '<span class="field-suffix">#</span>';
          break;
      }
    }
函数auworks\u form\u alter(&$form,$form\u state,$form\u id){
交换机($form_id){
案例“网络表单客户表单1”:
$form['submitted']['title']['#字段后缀']='#';
打破
}
}

让我知道你是怎么做的。

另外:如果你想在网络表单的提交按钮中添加包含div的内容,这里有一个钩子可以帮助你:

function YOURTHEMENAME_form_alter(&$form, &$form_state, $form_id) {

    if ($form['#form_id'] === 'webform_client_form_YOURWEBFORMID') {
        $form_structure = &$form['submitted'];

        $form['actions']['submit']['#prefix'] = '<div class="extra_div">';
        $form['actions']['submit']['#suffix'] = '</div>';
    }

}
函数YOURTHEMENAME\u form\u alter(&$form,&$form\u state,$form\u id){
如果($form['#form_id']==='webform\u client\u form\u YOURWEBFORMID'){
$form_structure=&$form['submitted'];
$form['actions']['submit']['#prefix']='';
$form['actions']['submit']['#后缀']='';
}
}
如果要将此应用于所有webforms,只需保留条件,如下所示:

$form['ELEMENT_NAME']['#prefix'] = '<div class="CLASS NAME">';
$form['ELEMENT_NAME']['#suffix'] = '</div>';
function YOURTHEMENAME_form_alter(&$form, &$form_state, $form_id) {

    $form_structure = &$form['submitted'];

    $form['actions']['submit']['#prefix'] = '<div class="extra_div">';
    $form['actions']['submit']['#suffix'] = '</div>';    
}
函数YOURTHEMENAME\u form\u alter(&$form,&$form\u state,$form\u id){
$form_structure=&$form['submitted'];
$form['actions']['submit']['#prefix']='';
$form['actions']['submit']['#后缀']='';
}

你可能会更幸运地将这个问题发布到下面的链接上,因为这是专门针对drupal的:)派对迟到了,但是没有任何现有的类可以用来定义你的样式。此外,根据您的drupal/webform版本,您可以在管理区域添加包装器类。是的,这应该(没有尝试过)在表单本身周围添加一个div。但我想做的是在表单中的特定字段和提交按钮周围添加div。这也不行,因为它会用div围绕特定元素,而我需要的是:field1,2,3,4,5 field6,7,8,9,10>,但无论如何,不要再打扰您了,Fieldset组件工作得很好。结果却用了这个。不过非常感谢!啊,我明白了。在这种情况下,我会说使用Fieldset,但你比我先使用。它们应该是
#前缀
#后缀
,否则Drupal会尝试将它们呈现为元素而不是PropertyTanks Clive。我想可能是这样的。编辑以显示此内容。