zend framework:zend form decorators - 删除multiply <label> </label>

时间:2010-12-06 13:40:00

标签: php zend-framework zend-decorators

我通过以下代码创建表单元素:

$input_new = $this->createElement('radio', 'Stars', array(
    'label' => 'Stars',
    'Options' => array('class'=>'star {split:2}'),
    'multiOptions'=>array(
        '1'=> '',
        '2'=> '',
        '3'=> '',
        '4'=> '',
        '5'=> '',
        '6'=> ''
  );

这是我得到的:

<label for="Stars" class="optional">Stars</label>    
<label for="Stars-1"><input type="radio" name="Stars" id="Stars-1" value="1" class="star {split:2} in_line"></label><br />
<label for="Stars-2"><input type="radio" name="Stars" id="Stars-2" value="2" class="star {split:2} in_line"></label><br />
<label for="Stars-3"><input type="radio" name="Stars" id="Stars-3" value="3" class="star {split:2} in_line"></label><br />
<label for="Stars-4"><input type="radio" name="Stars" id="Stars-4" value="4" class="star {split:2} in_line"></label><br />
<label for="Stars-5"><input type="radio" name="Stars" id="Stars-5" value="5" class="star {split:2} in_line"></label><br />
<label for="Stars-6"><input type="radio" name="Stars" id="Stars-6" value="6" class="star {split:2} in_line"></label>

我想删除每个输入和标签,但主标签(星号)仍然存在。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

好吧,您的单选按钮可以转到显示组(字段集),因此您也可以删除按钮的所有标签,只需使用组标签即可。如果没有,您可能需要编写外部装饰器视图。我想不出更清洁的方法来摆脱标签。

[编辑]

以下是一个例子:

在表单中,设置如下的装饰器:

$input_new->setDecorators(array(array('ViewScript', array('viewScript' => 'starsview.phtml'))));

然后创建一个starsview.phtml文件。这些链接应该证明有用,以便弄清楚如何创建视图脚本的内容:

希望这有帮助。