【问题标题】:How can I use zend form decorator to render errors inside my paragraph tag wrapping label and input如何使用 zend 表单装饰器在我的段落标签包装标签和输入中呈现错误
【发布时间】:2011-10-31 22:09:22
【问题描述】:

我想呈现以下标记:

<div class="row">
<p>
  <label>Your Name</label>
  <input type="text" class="text_field" name="name">
  <ul class="errors">
    <li>Waarde is vereist en kan niet leeg worden gelaten</li>
  </ul>  
</p>
</div>

这是我的 Zend 表单元素 + 装饰器:

$this->addElement('text', 'name', array(        
            'label' => 'Naam:',
            'class' => 'text_field',
            'required' => true,
            'decorators' => array(
                'ViewHelper',
                'Label',
                'Errors',
                array(array('row' => 'HtmlTag'), array('tag' => 'p')),
                array(array('content' => 'HtmlTag'), array('tag' => 'div', 'class' => 'row'))
            )));

但这总是将 ul 列表呈现在 p 标记下方,而不是在内部。它还在列表下方添加了一个额外的 p 标签。

<div class="row">
  <p>
    <label class="required" for="name">Naam:</label>
    <input type="text" class="text_field" value="" id="name" name="name">
  </p>
  <ul class="errors">
    <li>Waarde is vereist en kan niet leeg worden gelaten</li>
  </ul>
  <p></p>
</div>

我做错了什么?

【问题讨论】:

    标签: zend-framework zend-form zend-decorators


    【解决方案1】:

    找到了!我的愚蠢错误。我只在浏览器中检查了最终渲染的输出。我正在使用一个模板,它也加载了 javascript,这改变了 DOM,从而产生了不需要的结果。

    所以第一个装饰器设置工作正常。

    【讨论】:

      【解决方案2】:

      尝试执行以下操作:

      $this->addElement('text', 'name', array(        
                  'label' => 'Naam:',
                  'class' => 'text_field',
                  'required' => true,
                  'decorators' => array(
                      'ViewHelper',
                      'Label',
                      'Errors',
                      array(array('content' => 'HtmlTag'), array('tag' => 'p')),
                      array(array('content' => 'HtmlTag'), array('tag' => 'div', 'class' => 'row'))
                  )));
      

      【讨论】:

      • 这不起作用,因为两个 HtmlTag 装饰器具有相同的别名“内容”,因此将使用最后定义的。
      猜你喜欢
      • 2010-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 2017-05-09
      相关资源
      最近更新 更多