开发者

Adding the id attribute to a Zend_Form_Decorator_Label

开发者 https://www.devze.com 2023-01-16 03:35 出处:网络
I would like to add the id attribute to a label field in a Zend Form Element, but when setting \'id\'=>\'namelabel\' in the decorator properties, it sets for=\'namelabel\' in the label instead of addi

I would like to add the id attribute to a label field in a Zend Form Element, but when setting 'id'=>'namelabel' in the decorator properties, it sets for='namelabel' in the label instead of adding the attribute of 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';

renders

开发者_运维技巧
<label for="namelabel" class="form_label optional">Business Name:</label>

when I want it to render

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

Is this even possible?


What ZF is doing is correct, because the for in your label should be the same as the id in your input. So you should not change this to be something different.

Have you tried:

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

More importantly, why do you need to do this?

Edit after OP response

The for should be unique enough for this, you can change your ZF code to the below, as you do not need to set an 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';

Then your javascript, if your using jQuery you can do this

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

精彩评论

暂无评论...
验证码 换一张
取 消