Zend Decorators 带有单选按钮?

发布于 2024-11-27 01:50:19 字数 245 浏览 1 评论 0原文

如何将 Zend 默认提供的标准 dt 和 dd 标签转换为使用 ul 和 li 作为单选按钮列表?

这样最终结果是:

ul tag

li tag 单选按钮 1 end li tag

li tag 单选按钮 2 end li tag

li tag 单选按钮 3 end li tag

end ul 标签

而不是 dl dt 标签。

谢谢。

How do I turn the standard dt and dd tags provided by default with Zend to using ul and li for a radio button list?

so that the end results is:

ul tag

li tag radio button 1 end li tag

li tag radio button 2 end li tag

li tag radio button 3 end li tag

end ul tag

instead of dl dt tags.

thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉宸 2024-12-04 01:50:19

您需要为单选按钮元素指定装饰器的自定义序列,如下所示:

$this->addElement('radio', 'zipZangZowie', array(
    'decorators' => array(
        'ViewHelper',
        array(array('AddTheLi' => 'HtmlTag'), array('tag' => 'li')),
        array(array('AddTheUl' => 'HtmlTag'), array('tag' => 'ul')),
        'Errors',
        array('Description', array('tag' => 'p', 'class' => 'description')),

        // specifying the "div" tag to wrap your <label> elements is not strictly 
        // necessary, but it produces valid XHTML if your form elements are wrapped
        //  in block-level tags like "<li>" (see next comment)
        array('Label', array('tag' => 'div')),

        // uncomment the following if all of your form elements are wrapped in "<li>"
        //array('HtmlTag', array('tag' => 'li')),
    ),
    'disableLoadDefaultDecorators' => true,
    'label' => 'Zip Zang Zowie',
    'separator' => '</li><li>',
    'attribs' => array(
        'options' => array(
            'foo' => 'Option 1', 
            'bar' => 'Option 2', 
            'baz' => 'Option 3'
        ),
    ),
));

我希望装饰 Zend 表单没有那么复杂。无论如何,上面的装饰器数组是基于 Zend 的默认装饰器。您可能需要根据自己的喜好自定义它们。使各个单选按钮包含在列表中的关键部分是 separator 属性,它告诉 ZF 在每个单选按钮段之间放置什么内容,以及两个额外的 HtmlTag用于将此块包装在外部

  • ...

标记中的包装器。

You'll need to specify a custom sequence of decorators for your radio button element, like so:

$this->addElement('radio', 'zipZangZowie', array(
    'decorators' => array(
        'ViewHelper',
        array(array('AddTheLi' => 'HtmlTag'), array('tag' => 'li')),
        array(array('AddTheUl' => 'HtmlTag'), array('tag' => 'ul')),
        'Errors',
        array('Description', array('tag' => 'p', 'class' => 'description')),

        // specifying the "div" tag to wrap your <label> elements is not strictly 
        // necessary, but it produces valid XHTML if your form elements are wrapped
        //  in block-level tags like "<li>" (see next comment)
        array('Label', array('tag' => 'div')),

        // uncomment the following if all of your form elements are wrapped in "<li>"
        //array('HtmlTag', array('tag' => 'li')),
    ),
    'disableLoadDefaultDecorators' => true,
    'label' => 'Zip Zang Zowie',
    'separator' => '</li><li>',
    'attribs' => array(
        'options' => array(
            'foo' => 'Option 1', 
            'bar' => 'Option 2', 
            'baz' => 'Option 3'
        ),
    ),
));

I wish decorating Zend forms wasn't so complicated. Anyway, the decorators array above is based on Zend's default decorators. You may have to customize them more to your liking. The key parts that make the individual radio buttons wrapped in a list are the separator attribute, which tells ZF what to place in between each radio button segment, and the two extra HtmlTag wrappers for wrapping this block in the outer <ul><li>...</li></ul> tags.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文