0

任务是使用装饰器或其他东西将 Zend 表单中的标签标签替换为任何其他人(即 div)现在我有了

<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">

可能吗?怎么做?

4

2 回答 2

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')),

));

如需更多参考,请访问此链接

于 2013-04-23T10:37:50.743 回答
0

不知道标签是否可能,我想您将不得不重写标签元素在表单中的呈现方式。我使用描述标签简单地做到了:

<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);
于 2014-03-31T14:07:23.297 回答