Dec*_*ler 4 zend-framework decorator zend-form
如何使用表单元素的表单装饰器实现以下功能:
<dt>
<ul>
<li>The errors</li>
<li>The errors</li>
</ul>
<label>The label</label>
</dt>
<dd>
<input type="text" value="The input field">
</dd>
Run Code Online (Sandbox Code Playgroud)
换句话说,我想要在Label之前添加前缀,而不是在输入字段之后附加的错误.我做不过要保持<dt>
和<dd>
标签如上图所示.
好吧,我发现了怎么做.装饰师逐渐开始对我有意义:
$decorators = array(
'Label',
array( 'Errors', array( 'placement' => 'prepend' ) ),
array( array( 'dt' => 'HtmlTag' ), array( 'tag' => 'dt' ) ),
array( array( 'ddOpen' => 'HtmlTag' ), array( 'tag' => 'dd', 'openOnly' => true, 'placement' => 'append' ) ),
array( 'ViewHelper' ),
array( array( 'ddClose' => 'HtmlTag' ), array( 'tag' => 'dd', 'closeOnly' => true, 'placement' => 'append' ) )
);
Run Code Online (Sandbox Code Playgroud)
这样做有以下几点:
然后设置装饰器:
// be sure to only set them, after you have added the relevant elements to the form
$this->setElementDecorators( $decorators );
Run Code Online (Sandbox Code Playgroud)
PS:
请注意,虽然我的特定示例生成了invaliid html.;-)我后来才发现<ul>
元素中不允许使用<dt>
元素DOCTYPE
HTML 4.01 strict
归档时间: |
|
查看次数: |
1433 次 |
最近记录: |