将表单名称,子表单名称添加到zend dojo表单的id

时间:2010-01-29 00:28:01

标签: php html zend-framework dojo zend-form

我正在使用Zend Form和Dojo。我有一大堆相同的ID。如果您查看以下代码,您可以看到我当前的外观:

<dt id="addElement-label">&nbsp;</dt><dd id="addElement-element"> <button name="createEventForm[categoryDetail][addElement]" id="createEventForm-categoryDetail-addElement" type="button">addElement</button></dd>

这就是我想要的样子

<dt id="createEventForm-categoryDetail-addElement-label">&nbsp;</dt><dd id="createEventForm-categoryDetail-addElement-element"> <button name="createEventForm[categoryDetail][addElement]" id="createEventForm-categoryDetail-addElement" type="button">addElement</button></dd>

我想这样做,因为目前这会创建相当多的相同ID并导致其他问题。

2 个答案:

答案 0 :(得分:0)

如果您想拥有元素的自定义ID,则需要使用自己的装饰器 默认的DtDdWrapper返回“标准ID”

// Zend/Form/Decorator/DtDdWrapper.php line 60-61
return '<dt id="' . $elementName . '-label">&nbsp;</dt>' .
       '<dd id="' . $elementName . '-element">' . $content . '</dd>';

我建议

  • 扩展类并重载render()函数或
  • Zend_Form_Element
  • 创建并使用您自己的自定义装饰器

答案 1 :(得分:0)

您可以取出将重复到子窗体中的字段。 Ids将由子表单名称和元素名称分隔,用短划线表示。