【问题标题】:Altering a Drupal form after validation验证后更改 Drupal 表单
【发布时间】:2013-07-15 17:01:10
【问题描述】:

我有一个 Drupal 7 表单,提交后会进行一些验证。它正在获取电子邮件地址并进行数据库查找以查看该用户是否已经存在。如果用户存在,我需要更改在通常显示错误的页面上重新呈现的表单,删除一些字段。基本上在错误页面上,无论他们通常会收到任何其他验证错误(需要名字,需要姓氏等),他们只会收到一条错误消息,上面写着“该电子邮件地址已经在系统中”,然后我此时不再希望显示除​​电子邮件地址字段和文件上传字段之外的任何其他字段。所以我在尝试根据一些验证来弄清楚如何在第一次提交后更改表单时遇到了麻烦。

谢谢

【问题讨论】:

    标签: forms validation drupal drupal-7


    【解决方案1】:

    您要做的是向验证函数中的 $form_state 变量添加一些数据,以告知表单函数应该提供哪些字段。

    未经测试的示例:

        function my_form($form, &$form_state){
          $form['my_field1'] = array('#markup' => 'my default field');
    
          // look for custom form_state variable
          if ($form_state['change_fields']) {
            $form['my_field2'] = array('#markup' => 'my new field');
          }
        }
    
        function my_form_validate($form, &$form_state){
          // if not valid for some reason {
            form_set_error('my_field1','this did not validate');
            $form_state['change_fields'] = true;
          // }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-08
      • 1970-01-01
      • 1970-01-01
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-28
      相关资源
      最近更新 更多