Drupal 10 怎么使用 #element_validate 属性对表单字段进行验证?

之前为表单添加验证函数时,都是通过 $form['#validate'] 进行添加。了解到可以使用 #element_validate 属性单独对字段值进行验证,感觉更加优雅,请问题应该怎么写代码?

1
0

1 个回答

将 #element_validate 添加到相应的表单项数组中,值为回调用自定义验证函数,并参考官方示例实现自定义验证函数就行了。

$form['name'] = [
  '#title' => t('Name'),
  '#type' => 'textfield',
  # 添加 #element_validate 属性及回调函数.
  # 回调函数名称没有格式要求,可以使用如下格式:'模块名_表单名_字段名_validate'
  '#element_validate' => ['mymodule_xxx_form_name_validate'],
];

实现回调函数

function mymodule_xxx_form_name_validate($element, &$form_state, $form) {
   if (empty($element['#value'])) {
     $form_state->setError($element, t('This field is required.'));
   }
}
1
0
登录注册后添加答案