2013-02-26 62 views
0

我正在使用Zend_Form。我想做出忘记密码形式,是所有在一行是这样的:Zend形式用P标签替换DL标签

标签:[场] [提交按钮]

而且我想这是所有单一的段落标记内。我希望中的段落标记为表单标记。所以,基本上,我想用P标签替换Zend_Form的默认DL标签。我可以做到,但不完全。

如果我使用默认的,就像这样:

class Application_Form_Forgot { 
    public function init() { 
     // my fields, no special decorators... 
    } 
} 

产生这个HTML:

<form {the attributes} ><dl class="zend_form"> {the fields} </dl></form> 

我想这HTML代替:

<form {the attributes} ><p> {the fields} </p></form> 

这里是我的已经尝试过:

class Application_Form_Forgot { 
    public function init() { 
     // my fields... 

     $this->setDecorators(
      array(
       'FormElements', 
       'Form', 
       array('HtmlTag', array('tag' => 'p')), 
      ) 
     ); 
    } 
} 

但是产生这种HTML:

<p><form {the attributes} > {the fields} </form></p> 

的段落标记包围的形式。不完全是我想要的。

我也试过:

  • 谷歌搜索和阅读一堆StackOverflow上的职位和其他地方如何删除的DL标签。原谅我,如果我错过了答案的地方,这是重复的。
  • 阅读Zend的源代码找出一个办法。我找到了DlDt装饰器,但似乎只适用于元素,而不是形式。
  • 即将开始使用表单外的段落标签并继续我的生活。

有人能请我指出正确的方向 - 如果这甚至可能吗?

感谢, 菲利普

回答

1

你接近,改变你有什么:

$this->setDecorators(
    array(
     'FormElements', 
     array('HtmlTag', array('tag' => 'p')) 
     'Form',    
    ) 
); 

如果你想象装饰的每一个渲染“围绕”什么是有工作之前,这样的顺序是呈现表单元素,然后围绕它放置段落,然后围绕它放置表单标记。

+0

Huzzah!谢谢!并感谢您解释它。这是完全合理的。 – 2013-02-26 18:45:52