我正在使用 webform_form_alter 进行一些 webform 验证。我正在使用 webform_form_alter,因为我在“选择”字段上切换了某些内容。
在我的 webform-form-317.tpl.php 中,我定义了新的字段集,我将我的字段设置到这个新的字段集中,并从 webform 中取消设置原始字段。
$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'] 回来了,因为即使用户在文本字段中输入了什么也没有。
关于我做错了什么的任何建议?
作为第二个问题,如果有人也回答,我如何修改这些文本字段以设置“表单文本所需错误”的类,以便它们与其余必填字段一起显示为红色。
谢谢