我有一个zend表单,我需要Radio Group的最终输出HTML如下:
<div>
<span class='radio_title'>Gender</span> <!-- The issue is in this line -->
<span class='felement'>
<label ....> <input type="radio" ...... value="male" /></label>
<label ....> <input type="radio" ...... value="female" /></label>
</span>
</div>
(即)用自定义的div或span标签替换默认的dt和dd
我创建了一个装饰器,如下所示:
$decorator = array(
'ViewHelper',
'Errors',
array(array('data' => 'HtmlTag'), array('tag' => 'span', 'class'=> 'felement')),
// the next line is never applied
array('Label', array('tag' => 'span', 'class'=> 'fradio' , 'placement'=>'prepend') ),
array(array('row' => 'HtmlTag'), array('tag' => "div"))
);
$gender = new Zend_Form_Element_Radio("gender",
array(
"label"=>"Gender",
'multiOptions'=>array(
'male'=>'Male',
'female'=>'Female'
),
"decorators"=>$decorator
));
我得到了这个输出:
<dt id="gender-label">
<label class="optional">Gender</label>
</dt>
<!-- i don't know why the Main Label of the radio group didn't
have the Label decorator applied to it -->
<div>
<span class="felement">
<label for="gender-male"><input type="radio" disablefor="1" checked="checked" value="male" id="gender-male" name="gender">Male</label>
<label for="gender-female"><input type="radio" disablefor="1" value="female" id="gender-female" name="gender">Female</label>
</span>
</div>
答案 0 :(得分:1)
我应用了这个装饰器:
array(
'ViewHelper',
'Errors',
array(array('data' => 'HtmlTag'), array('tag' => 'div', 'class'=> 'fradioelement')),
array('Label', array('tag' => 'span', 'class'=> 'fradiotitle') ),
array('description', array('tag' => 'span')),
array(array('row' => 'HtmlTag'), array('tag' => "div","class"=>"radioelement"))
);
它给了我这个输出:
<div class="radioelement">
<span id="gender-label"><label class="fradiotitle optional" for="gender">Gender</label></span>
<div class="fradioelement">
<label for="gender-male"><input type="radio" checked="checked" value="male" id="gender-male" name="gender">Male</label>
<label for="gender-female"><input type="radio" value="female" id="gender-female" name="gender">Female</label>
</div>
</div>
这几乎是我所需要的。
**我必须补充:
'disableLoadDefaultDecorators' => true
元素的选项