Добавление атрибута id в Zend_Form_Decorator_Label - PullRequest
1 голос
/ 16 сентября 2010

Я хотел бы добавить атрибут id в поле метки в элементе Zend Form, но при установке 'id' => 'namelabel' в свойствах декоратора он устанавливает для = 'namelabel' в метке вместо добавленияатрибут id = 'namelabel'

$name = new Zend_Form_Element_Text('name');
$name->setLabel('Business Name:');
$name->addDecorator('Label',array('class'=>'form_label', 'id'=>'namelabel'));
$name->addDecorator('HtmlTag',array('tag'=>'span','class'=>'form_inputs'));
$name->setOrder(1);
$name->size='40';

отображает

<label for="namelabel" class="form_label optional">Business Name:</label>

, когда я хочу, чтобы он отображал

<label id="namelabel" for="name" class="form_label optional">Business Name:</label>

Возможно ли это вообще?

1 Ответ

2 голосов
/ 16 сентября 2010

То, что делает ZF, правильно, потому что for в вашем ярлыке должно совпадать с id в вашем input.Так что вам не следует менять это на что-то другое.

Вы пробовали:

$name->addDecorator('Label',array('class'=>'form_label', 'id'=>'name'));

Более важно, зачем вам это нужно?

Редактировать после ответа OP

Для этого for должно быть достаточно уникальным, вы можете изменить свой ZF-код на следующий, так как вам не нужно устанавливать id

$name = new Zend_Form_Element_Text('zf_element_name');
$name->setLabel('Business Name:');
$name->addDecorator('Label',array('class'=>'form_label'));
$name->addDecorator('HtmlTag',array('tag'=>'span','class'=>'form_inputs'));
$name->setOrder(1);
$name->size='40';

Тогда ваш javascript, если вы используете jQuery, вы можете сделать это

$("label[for='zf_element_name']").html("Some new Label text");
...