2010-07-18 50 views
0

如何使用loadDefaultDecorators函数删除装饰器标签+ HtmlTag?Zend_Form - loadDefaultDecorators ::如何使用loadDefaultDecorators函数移除装饰器标签+ HtmlTag?

我的解决方法 - 请告诉我,如果我在执行工作良好或需要修改

class MyForm extend Zend_Form{ 

    function init(){ 
    //create form elements 
    ...................................... 
    } 

public function loadDefaultDecorators() { 
    if ($this->loadDefaultDecoratorsIsDisabled()) { 
    return $this; 
    } 
    foreach($this->getElements()as $elem){ 
    $elem->removeDecorator('Label') 
     ->removeDecorator('HtmlTag'); 
     } 
    return $this; 
    } 
} 

感谢

回答

2

你不得不重写loadDefaultDecorators方法MyForm的类,但你不得不这样做,对于每一个元素类。 在这种情况下,您不会看到任何表单HTML代码,因为您没有提供窗体特定的装饰器,如Form,FormElements等。上述所有这些装饰器均在Zend_Form类的loadDefaultDecorators方法中定义。 试着在你的loadDefaultDecorators方法开始添加以下行:

parent::loadDefaultDecorators(); 

这将调用Zend_Form类的对应方法。