任务是使用装饰器或任何其他人(即div)在Zend表单中替换标签标签 现在我有了
<label for="field1" class="required">Field1</label>
<input type="text" name="field1" id="field1" value="" size="20">
我想拥有什么
<div>Field1</div>
<input type="text" name="field1" id="field1" value="" size="20">
有可能吗?怎么做?
答案 0 :(得分:1)
像这样的东西
$this->setElementDecorators(array(
array('ViewHelper'),
array('Errors', array('tag' => 'div', 'class' => 'error')),
array('Label', array('tag' => 'span')),
array('HtmlTag', array('tag' => 'div', 'class' => 'label')),
));
如需更多参考,请访问此link
答案 1 :(得分:0)
不知道标签是否可行,我想你必须重写标签元素在表单中的呈现方式。我只是使用description标签来管理:
<div class="input-group input-group-sm col-md-12">
<span class="input-group-addon">Name of the field</span>
<input id="name" class="form-control" type="text" name="name">
</div>
这是通过使用像:
这样的装饰器来完成的public $inputDecorators_md12 = array(
'ViewHelper',
array('Description', array('escape' => false, 'tag' => 'span', 'placement' => 'prepend', 'class'=>'input-group-addon')),
array(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'input-group input-group-sm col-md-12'))
);
请注意,您可以为描述定义任何类型的标记。
所以而不是
$field->setLabel('fieldlabel')
你可以这样做:
$field->setDescription('fieldlabel')
->setDecorators($this->inputDecorators_md12);