我使用webform_form_alter做一些网页表单验证。我使用webform_form_alter因为我接通“选择”字段的特定内容。

在我的网页表单外形317.tpl.php予定义的新字段集设置我字段到这个新的字段集,并从网络表单取消设置原始

$form['submitted']['ContactInfo'] = array(
'#type' => 'fieldset',
'#prefix' => '<div id="ContactInfo">',
'#suffix' => '</div>',
'#weight' => -10,
'#title' => 'Contact Information'
);

$form['submitted']['ContactInfo']['phone_home'] = $form['submitted']['phone_home'];
unset($form['submitted']['phone_home']);

在我的webform_form_alter我有以下代码:

switch ($form_id)
{
case 'webform_client_form_317':
{
$form['#validate'][] = 'validate_form';
}
}

我Validate_form功能如下:

function validate_form($form_id, $form_values)
{
      if ($form_values['submitted_tree']['ContactInfo']['phone_home'] == "")
      {
             form_set_error('phone_error', t('Please enter a home phone number.'));
      }
}

问题是,$ form_values [“submitted_tree”] [“的ContactInfo”] [“phone_home”]回来为虚无甚至是在用户输入的东西到文本框。

这是我在做什么错什么建议?

作为万一有人第二个问题也回答,我怎么修改这些文本框的设置类“的形式,文本所需的错误”,所以他们在红色显示了必填字段的其余部分。

由于

有帮助吗?

解决方案

我希望你不要写网页表单模块中的代码,但取得了你的自定义模块它。

在第一种情况下,你的功能应该是

function validate_form($form, &$form_state) {
    if ($form_state['values']['submitted_tree']['ContactInfo']['phone_home'] == "") {
         form_set_error('phone_home', t('Please enter a home phone number.'));
    }
}

如果你正在谈论的错误类一样,Drupal将其添加到有错误组像上面的代码完成所有领域。你需要在表单字段作为第一个参数的form_set_error函数的名称通过。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top