在Zend_Form </div> </legend>中用<div>替换<legend>

时间:2011-11-13 19:27:03

标签: zend-framework zend-form

我在表单中对齐我的图例时遇到问题,并且阅读装饰器文档并没有让我更清楚如何用正常替换标记。

有谁知道如何做到这一点?

感谢。

1 个答案:

答案 0 :(得分:2)

修改

我很抱歉,我还在考虑标签,而不是传奇。要替换图例标记(在您使用子表单或手动将fieldset装饰器添加到表单时生成并使用另一个标记调用$form->setLegend('some')),您可以选择两个选项。

  1. 编写自己的fieldset视图帮助程序(Zend_View_Helper_Fieldset),并将其放入应用程序帮助程序目录中。它将强制ZF接受你的帮助,而不是这个位于库文件夹中。在那个原始助手中你有:

    // get legend
    $legend = '';
    if (isset($attribs['legend'])) {
        $legendString = trim($attribs['legend']);
        if (!empty($legendString)) {
            $legend = '<legend>'
                    . (($escape) ? $this->view->escape($legendString) : $legendString)
                    . '</legend>' . PHP_EOL;
        }
        unset($attribs['legend']);
    }
    

    你可以在帮助器中用div替换legend标签,它会起作用。

  2. 实现这一目标的第二种方法是将HtmlTag装饰器添加到Zend_Form元素实例中。看看这里,它是如何在ZF中使用装饰器的好教程:http://devzone.zend.com/1240/decorators-with-zend_form/

  3. 很抱歉在开头误导你:(