Chr*_*ris 5 forms zend-framework zend-form
更新我能够通过创建自定义标签装饰器来实现此功能,该装饰器扩展了Zend/Form/Decorator/Label.php.我向它添加了一个setTagClass()方法并覆盖了render方法,以创建带有所需类的封闭标记.可能有一种更优雅的方式,但这似乎有效.
我正在寻找有关如何使用装饰器在标签的dt元素上设置类的信息.下面的第三行代码在标签上设置类,并将标签包装在dt标记中.我想知道如何在dt标签上设置类.
$txtLangPrefOther = $this->createElement('text','langPrefOther');
$txtLangPrefOther->setLabel('Language Preference Other:'));
$txtLangPrefOther->getDecorator('Label')->setOptions(array('tag' => 'dt', 'class' => 'other'));
Run Code Online (Sandbox Code Playgroud)
这会产生诸如的输出
<dt id="langPrefOther-label">
<label for="langPrefOther" class="other">Language Preference Other:</label>
</dt>
<dd id="langPrefOther-element">
<input type="text" id="langPrefOther" name="langPrefOther" ">
</dd>
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像
<dt id="langPrefOther-label" class="other">
<label for="langPrefOther">Language Preference Other:</label>
</dt>
<dd id="langPrefOther-element">
<input type="text" id="langPrefOther" name="langPrefOther" ">
</dd>
Run Code Online (Sandbox Code Playgroud)
小智 5
有一个Label叫做装饰的属性tagClass!
试试这个:
$element->addDecorators(array(
'ViewHelper',
'Description',
'Errors',
array('HtmlTag', array('tag' => 'dd', 'class' => $class )),
array('Label', array('tag' => 'dt', 'class' => $class, 'tagClass' => $class))
));
Run Code Online (Sandbox Code Playgroud)
因为它是表单装饰器而不是元素装饰器。尝试这个:
$this->setDecorators(
array(
'FormElements',
array('HtmlTag', array('tag' => 'dl', 'class' => 'theclass')),
'Form'
));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11814 次 |
| 最近记录: |