1

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

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

我的动作里面的zend代码是:

$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>
4

2 回答 2

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>

或者

<label for="elementname" class="another required">Your Label Text</label>
于 2014-03-07T19:02:02.777 回答
1

看看这个类似的问题:

Zend_Form - 添加 CSS 类 :: 我如何在 Zend_Form 中添加 css 类到标签?

向表单元素本身添加一个类很简单:

$usernameElement->class = 'email_label';

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

于 2013-04-02T03:15:42.117 回答