Zend Framework - 表单元素 - 删除ID

时间:2012-03-05 11:09:27

标签: zend-framework

是否可以删除Zend Framework默认添加到每个表单元素的'id'属性?

我查看了文档,但似乎无法找到这个相当直截了当的问题的答案。

可能的解决方案

除了setOption之外,还有更简洁的方法吗?

$submit = new Zend_Form_Element_Submit('submit');
$submit->setRequired(FALSE)
       ->setIgnore(TRUE)
       ->setDecorators($this->elementDecorators)
       ->setOptions(array('id' => ''));

1 个答案:

答案 0 :(得分:0)

解决方案是使用您自己的View Helper覆盖Zend_View_Helper_Form 。 但是真诚地,不要过多关注表单中的这个id属性,你迟早会需要这个id(如果你使用的是Javascript)并且性能提升(渲染页面)太小了被考虑在内。它甚至会导致性能下降,因为你要覆盖Helper。

如果您的目的不同而且您想要这样做,您需要编写自己的View Helper,如下所示:

class My_View_Helper_Form extends Zend_View_Helper_FormElement
{
    public function form($name, $attribs = null, $content = false)
    {
        $info = $this->_getInfo($name, $content, $attribs);
        extract($info);


        $xhtml = '<form'
               . $this->_htmlAttribs($attribs)
               . '>';

        if (false !== $content) {
            $xhtml .= $content
                   .  '</form>';
        }

        return $xhtml;
    }
}

最后,您只需要使用插件加载器重载默认视图助手。 Read the manual了解有关插件加载程序的更多信息。