【问题标题】:Drupal Webform Validation (webform_form_alter)Drupal 网络表单验证 (webform_form_alter)
【发布时间】:2010-09-29 01:25:10
【问题描述】:

我正在使用 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'] 回来了,因为即使用户在文本字段中输入了什么也没有。

关于我做错了什么有什么建议吗?

作为第二个问题,如果有人也回答了问题,我如何修改这些文本字段以将类设置为“表单文本所需错误”,以便它们与其余必填字段一起显示为红色。

谢谢

【问题讨论】:

    标签: validation drupal drupal-6 drupal-webform drupal-fapi


    【解决方案1】:

    我希望您不要在 webform 模块中编写此代码,而是为它制作了一个自定义模块。

    在第一种情况下,你的函数应该是

    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 函数。

    【讨论】:

    • 嘿 googletorp。不幸的是,即使该字段中有文本(或没有),它仍然没有给我来自“phone_home”的值,我总是得到“请输入家庭电话号码错误”(换句话说,$form_state[. ..] 始终为 ""(或 null))。如果我为了好玩而对该值执行 drupal_set_message,但我什么也得不到。
    • 在这里使用您的答案得到它stackoverflow.com/questions/1464056/… 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多