出于造型的目的,我需要<div>
在一个元素的开头放置一个开口,在另一个元素</div>
的末尾放置一个结束标签。查看 HtmlDecorator 的文档,我似乎无法弄清楚如何正确使用它,或者这是否是正确的装饰器。仅仅为了实现这一点而必须创建自己的装饰器似乎很浪费。
问问题
9421 次
2 回答
16
在要添加 <div> 的元素上,添加以下装饰器:
array(
array('openDiv' =>'HtmlTag'),
array('tag' => 'div', 'openOnly' => true)
)
在要添加 </div> 的元素上,添加以下装饰器:
array(
array('closeDiv' =>'HtmlTag'),
array('tag' => 'div', 'closeOnly' => true)
)
于 2010-10-04T15:08:45.853 回答
7
听起来您可以使用带有装饰器的显示组。HtmlTag
就像是:
$form = new Zend_Form();
$form->addElement('text', 'elt1', array(
'label' => 'Element 1',
));
$form->addElement('text', 'elt2', array(
'label' => 'Element 2',
));
$form->addDisplayGroup(array('elt1', 'elt2'), 'myDisplayGroup');
$group = $form->getDisplayGroup('myDisplayGroup');
$group->setDecorators(array(
'FormElements',
array('HtmlTag', array('tag' => 'div', 'class' => 'myClass'))
));
这会产生如下 HTML:
<form method="post" action="" enctype="application/x-www-form-urlencoded">
<dl class="zend_form">
<div class="myClass">
<dt id="elt1-label"><label class="optional" for="elt1">Element 1</label></dt>
<dd id="elt1-element"><input type="text" value="" id="elt1" name="elt1"></dd>
<dt id="elt2-label"><label class="optional" for="elt2">Element 2</label></dt>
<dd id="elt2-element"><input type="text" value="" id="elt2" name="elt2"></dd>
</div>
</dl>
</form>
当然,在所有 <dl>、<dt> 和 <dd> 疯狂中插入 <div> 标记会产生无效标记,但我认为您正在为表单元素指定不同的装饰器,以便 <div> 包装您想要最终将是有效的。
AnyMarkup Decorator对于更通用的标记操作也值得注意。
于 2010-10-03T06:11:51.230 回答