0

我需要为打印设置一个装饰:

<input type="radio" id="option1" name="option" value="foo">
<label for="option1"></label>
<label>Option 1</label>

使用 Zend_Form_Element_Radio。

我试过了:

$pass = new Zend_Form_Element_Radio('options');
    $pass->setLabel('Bloquear:')
            ->setRequired(true)
            ->addMultiOptions(array(
                'option1' => '<label for="options-1"></label><label>Option 1</label>',
                'option2' => '<label for="options-2"></label><label>Option 2</label>'));
    return $pass;

但它会像非 HTML 一样打印标签。建议?

4

1 回答 1

0

您必须定义自定义装饰器,如下例所示,以管理<ul><li>

在 ul 和 li 的基础上应用 css 会很容易。看看那个

$this->addElement('radio', 'Bloquear', 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' => 'Bloquear',
'separator' => '</li><li>',
'attribs' => array(
    'options' => array(
        'foo' => 'Option 1', 
        'bar' => 'Option 2', 
        'baz' => 'Option 3'
    ),
),

));

请让我知道我是否可以为您提供更多帮助。

于 2013-04-30T04:38:21.333 回答