我想将id属性添加到Zend Form Element中的标签字段,但是当在decorator属性中设置'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>
这甚至可能吗?
答案 0 :(得分:2)
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");