如何在Zend Form中替换标签标签

时间:2013-04-23 10:30:00

标签: php zend-framework zend-form

任务是使用装饰器或任何其他人(即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">

有可能吗?怎么做?

2 个答案:

答案 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);