У меня есть две формы, и они имеют несколько идентификаторов, так как два поля ввода называются 'title'.
Zend генерирует мне хороший вывод, подобный этому:
<dl class="zend-form">
<dt id="title-label">
<label for="form1-title" class="required">Description</label>
</dt>
<dd id="title-element">
<input name="form1[title]" id="form1-title" value="..." type="text">
</dd>
</dl>
Теперь проблема в том,что элементы dt и dd названы неверно (должно быть в форме form-title-lable, поскольку это подформа).
Я также попытался изменить декораторы элементов:
$this->addElements( ... );
$this->setElementDecorators(array(
'ViewHelper',
'Errors',
array(array('data' => 'HtmlTag'),array( 'tag' => 'dd', 'class' => 'element' )),
array(array('data' => 'Label'),array( 'tag' => 'dt', class=> 'label' ))
));
Однако результат оказался не таким, как ожидалось.
Метка была добавлена к моей кнопке отправки, и идентификаторы элементов dt все еще были там.
Как удалить атрибуты id?
Правка - Объявление элемента:
$titel = new Zend_Form_Element_Text('title');
$titel->setLabel( "Title" )
->addValidator('NotEmpty', true)
->addValidator('stringLength',true, array(0, 255 ))
->setRequired(true)
->addFilter("Alnum", array(true))
->addFilter('StringTrim');
$this->addElement($titel);