【问题标题】:Drupal 7 form api. Add custom class to element after validationDrupal 7 表单 API。验证后向元素添加自定义类
【发布时间】:2017-09-29 09:20:20
【问题描述】:

我环顾四周,找不到关于如何将自定义类添加到表单元素或 <form> 标记的解决方案。我有一个自定义表单验证功能,可以进行一些自定义验证。 form_set_error 确实在元素上设置了 error 类,但我想在 form 标记中的任何位置添加我的自定义类。

【问题讨论】:

    标签: drupal drupal-7 drupal-forms form-api


    【解决方案1】:

    由于目标只是自定义错误字段的显示,因此更简洁的方法是在主题中创建自己的 theme_form_element() 并使用函数 form_get_error($element) 添加您想要的类(如果有任何错误)在字段上返回。 使用此方法,您还可以在错误字段旁边显示错误消息,而不是在表单顶部。

    【讨论】:

    • 感谢您的建议,如果<form>标签本身的自定义类发生错误怎么办??
    • 您可以使用钩子theme_form修改表单显示,并使用函数form_get_errors(注意末尾的s)可以获取该表单上的所有错误。
    【解决方案2】:

    我找到了答案here。原来您可以在提交后使用$form_state 对表单进行更改。我做了

    if($haserror) {
        $form_state['complete form']['#attributes'] = array('class'=>array('contains_error'));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-16
      • 2014-04-05
      • 1970-01-01
      相关资源
      最近更新 更多