【问题标题】:How to replace label tags in Zend Form如何在 Zend Form 中替换标签标签
【发布时间】:2013-04-23 10:29:59
【问题描述】:

任务是使用装饰器或其他东西替换 Zend Form 中的任何其他标签标签(即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">

有可能吗?怎么做?

【问题讨论】:

  • 您在哪个版本的 zf 上工作?
  • 我正在使用 v1.12
  • chandresh_cool 的回答应该有效。请您根据该答案编辑您的问题以包含您的装饰器代码,以及它正在生成的 HTML
  • 尝试使用自定义视图脚本。如果您需要,我会发布一个示例。

标签: php zend-framework zend-form


【解决方案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

【讨论】:

  • 不,只是在 spans 中放置 label 标签,但我需要替换 label 标签。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 2016-03-22
    相关资源
    最近更新 更多