Zend框架。如何在标签上添加额外的类

时间:2013-04-02 02:45:46

标签: php zend-framework zend-form

我的问题是在生成表单之后,标签类已分配给默认值是可选的,而html代码如下所示:

<div class="form_wrapper">
    <label for="email" class="optional">Username(e-mail):</label>
    <input type="text" name="email" id="email" value="">
</div>

我的行动中的代码是:

$form->addElement('text', 'email');
$usernameElement = $form->getElement('email');
$usernameElement->setLabel('Username(e-mail):');
$usernameElement->setDecorators(array(
    'ViewHelper',
    'Label',
    new Zend_Form_Decorator_HtmlTag(array('tag' => 'div','class'=>'form_wrapper')) 
));

但在某些情况下,我希望将其设置为一个不同的值,我可以轻松地在CSS中设置样式。我想要的HTML代码是这个(摆脱“可选”):

<div class="form_wrapper">
    <label for="email" class="email_label">Username(e-mail):</label>
    <input type="text" name="email" id="email" value="">
</div>

2 个答案:

答案 0 :(得分:2)

假设这是ZF1,我挖出了1.12.3的参考:

$form->getElement('elementname')
    ->setDecorators(array(
         array('ViewHelper',
               array('helper' => 'formText')),
         array('Label',
               array('class' => 'another'))
    ));

以上为您提供了额外的课程。所以你会得到类似的东西:

<label for="elementname" class="another optional">Your Label Text</label>

OR

<label for="elementname" class="another required">Your Label Text</label>

答案 1 :(得分:1)

看看这个类似的问题:

Zend_Form - add CSS Class :: How can I add css class to label in Zend_Form?

向表单元素本身添加一个类就像:

$usernameElement->class = 'email_label';

看来如果你想在标签上设置类,你需要添加Zend_Form_Decorator_Label并传入类名。