2010-01-29 44 views
0

我正在使用Zend Form和Dojo。我有一大堆相同的ID。如果你看一下下面的代碼,你可以看到我現在的樣子:將表單名稱,子表單名稱添加到zend 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並導致其他問題。

回答

0

如果你想擁有元素的自定義ID,你需要使用你自己的裝飾器。
默認DtDdWrapper返回「標準標識」

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

我建議要麼

  • 擴展類和重載渲染()函數或
  • 創建和使用自己的,定製的裝飾爲Zend_Form_Element
0

您可以取出將重複到子窗體的字段。 ID將由子表單名稱和由短劃線分隔的元素名稱構成。