Zend_Form:子表单上的重复装饰器ID

时间:2010-07-21 15:43:24

标签: php zend-framework zend-form

我正在使用Zend Framework 1.10.6中的Zend_Form来呈现一个html表单。在这种形式'z'中,有一个带有字段'a'的子表单。子表单将添加到主表单两次,一次使用名称“x”,一次使用“y”。

下面是Zend_Form-object渲染的html。

<form id="z" enctype="application/x-www-form-urlencoded" method="post" action="">
 <dl class="zend_form">
  <dt id="x-label">&#160;</dt>
  <dd id="x-element">
   <fieldset id="fieldset-x">
    <dl>
     <dt id="a-label"><label for="x-a" class="required">A</label></dt>
     <dd id="a-element"><input type="text" name="x[a]" id="x-a" value="" /></dd>
    </dl>
   </fieldset>
  </dd>

  <dt id="y-label">&#160;</dt>
  <dd id="y-element">
   <fieldset id="fieldset-y">
    <dl>
     <dt id="a-label"><label for="y-a" class="optional">A</label></dt>
     <dd id="a-element"><input type="text" name="y[a]" id="y-a" value="" /></dd>
    </dl>
   </fieldset>
  </dd>

  <dt id="submit-label">&#160;</dt><dd id="submit-element"><input type="submit" name="submit" id="submit" value="Submit" /></dd>
 </dl>
</form>

现在唯一的问题是标准装饰器(<dt><dd>)会生成重复的ID。为什么这些ID不以子表单名称和短划线为前缀,比如输入字段的ID是?

1 个答案:

答案 0 :(得分:0)

不确定为什么它们没有前缀但是为了解决它,我只是在元素上设置我自己的自定义装饰器。本文可能有助于http://devzone.zend.com/article/3450