我正在尝试为我的某个表单的标签设置一个id,以便稍后可以使用jquery隐藏它。这是我的元素:
$password = new Zend_Form_Element_Password('password');
$password->setLabel('Password:')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty')
->setAttrib( "id", "password" );
在源代码中,它看起来像这样:
<dt>
<label for="password" class="required">Password:</label>
</dt>
<dd>
<input type="password" name="password" id="password" value="">
</dd>
我需要标签看起来像:
<label id="pass_label" for="password" class="required">Password:</label>
有什么想法吗?
答案 0 :(得分:1)
使用装饰器似乎无法更改标签的ID,但您可以轻松添加类名
$decorators = array(
array('ViewHelper'),
array('Errors'),
array('Description', array('tag' => 'p', 'class' => 'description')),
array('HtmlTag', array('tag' => 'dd')),
array('Label', array('tag' => 'dt', 'class' => 'pass_label')),
);
$password->setDecorators($decorators);
这导致
<label class="pass_label optional" for="password">Password</label>
我尝试以相同的方式设置id,但这不起作用。如果您将id作为options数组传递,则会更改'for'属性的值
答案 1 :(得分:1)
我知道我迟到了,但是如果你想使用jQuery隐藏它,你可以选择基于for属性,如下所示:
$('label[for="password"]').hide();
应该做的伎俩。根据jQuery的版本,您可能需要或不需要@之前的属性,如下所示:
$('label[@for="password"]').hide();