好吧,2012年仍然是同样的问题。如果您删除装饰器,则 html 将无法验证。如果你离开它们,隐藏的元素会占用空间。在我所有的项目中,我都有一个 CSS 助手 .hidden,所以我只是将它应用到<dd>
并取消设置标签:
$element = new Zend_Form_Element_Hidden('foo', array('value' => 'bar'));
$element->removeDecorator('Label');
$element->getDecorator('HtmlTag')->setOption('class', 'hidden');
有效的 html(5),漂亮的表单。这也可以进入隐藏字段的自定义装饰器。
编辑
这就是我将它放入我自己的表单元素的方式:
class Exanto_Form_Element_Hidden extends Zend_Form_Element_Hidden
{
public function render(Zend_View_Interface $view = null)
{
$this->removeDecorator('Label');
$this->getDecorator('HtmlTag')->setOption('class', 'hidden');
return parent::render($view);
}
}