我正在尝试使用zend装饰器来使用自定义容器并在我的元素上添加css类。
$form->setElementDecorators(array(
'viewHelper',
'Errors',
array('Label'),
array(
array('row'=>'HtmlTag'),
array('tag'=>'div', 'class'=>'col-md-6')
)
));
$form->setDecorators(array(
'FormElements',
array(
array('data'=>'HtmlTag'),
array('tag'=>'div', 'class'=>'row')
),
'Form'
));
有没有办法直接在输入上添加css类? <input class="form-control">
有没有办法将标签和输入封装在2个div中?
其实我有
<div class="col-md-6">
<label></label>
<input>
</div>
和我希望的是
<div class="col-md-6">
<div class="form-group">
<label></label>
<input class="form-control">
</div>
</div>
另外,我在哪里可以找到有关要传递给setElementDecorators()函数的数组的文档?
由于
答案 0 :(得分:2)
尝试像这样添加HtmlTag
装饰器:
$form->setElementDecorators(array(
'viewHelper',
'Errors',
array('Label'),
array(
array('row'=>'HtmlTag'),
array('tag'=>'div', 'class'=>'form-group'),
),
array('HtmlTag', array('tag'=>'div', 'class'=>'col-md-6')),
));
对于所有元素,您可以添加如下类:
设置 form-control
类的示例:
foreach($form->getElements() as $element){
$element->setAttrib('class', 'form-control');
}
添加 form-control
类的示例:
foreach($form->getElements() as $element){
$element->setAttrib('class', 'form-control' . ($element->getAttrib('class') == '' ? '' : ' ' . $element->getAttrib('class')));
}