【问题标题】:Drupal: set id attribute in multi-step formDrupal:以多步形式设置id属性
【发布时间】:2010-03-07 22:03:23
【问题描述】:

我正在 Drupal 6 中构建一个多步骤表单。由于某种原因,form 元素的 id 属性在第 1 步表单第一次显示时有一个额外的“-1”。

例如,如果表单名称是“user-registration”,那么我第一次访问步骤 1 表单时,id 是“user-registration-1”。然后,如果我转到第 2 步,id 是“用户注册”。如果我回到第 1 步,id 仍然是“用户注册”。

我想知道是否有办法设置id 属性或阻止Drupal 添加额外的“-1”。

谢谢。

【问题讨论】:

    标签: forms drupal


    【解决方案1】:

    你可以自己设置id。

    $form['#attributes'] = array('id' => 'user-registration');
    

    【讨论】:

    • 谢谢,但我在这里进行了测试,它向表单添加了另一个 id 属性,而不是更改现有属性的值(Drupal 6.3)。
    【解决方案2】:

    Drupal 6.x 具有用于“#id”和“#attribute”的表单 API 属性。我遇到了同样的问题,发现“#id”属性是空白的,这说明了表单字段中的空白“id”。然后我使用了'#attribute' => array('id' => 'name of id'),它在表单字段中给了我第二个'id'。删除“#attribute”中的 id 并为“#id”添加另一个表单 API 属性。

    $form['foo'] = array(
      '#type' => 'textfield',
      '#title' => t('Foo'),
      '#required' => FALSE,
      '#id' => 'text-foo',    
    );
    

    【讨论】:

      【解决方案3】:

      这对我有用:

      $form = array( '#id' => 'myformid' );
      

      【讨论】:

      • 我怀疑这会起作用 - $form = array() 首先清除现有的 $form。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多