编写一个验证函数

老葛的Drupal培训班 Think in Drupal

Drupal有一个内置的机制,能高亮的显示验证失败的表单元素,并为用户显示一条错误消息。检查一下示例中的验证函数,来看一下它是怎么工作的:
 
/**
 * Validate the form.
 */
function formexample_nameform_validate($form, $form_state) {
    if ($form_state['values']['user_name'] == 'King Kong') {
        // We notify the form API that this field has failed validation.
        form_set_error('user_name',
            t('King Kong is not allowed to use this form.'));
    }
}
 
    注意form_set_error()的使用。当King Kong访问我们的表单,并用他的巨大的键盘键入他的姓名的时候,他将在页面顶部看到一条错误消息,而包含错误的字段也被高亮显示,这里用的是红色,如图10-6所示:
10-6 向用户指示验证失败
 
当然,他也有可能仅仅输入他的名字Kong。我们在这里仅仅拿他作为一个例子,来说明form_set_error()为我们的表单设置了一条错误消息,并使得验证失败。

验证函数应该专注于验证。一般来讲,它们不应该修改数据。然而,它们可以向$form_state数组添加一些信息,在下面的一节中,我们将看到这一点。

Drupal版本: