0

私はzendフォームを持っており、ラジオグループの最終的な出力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>

(つまり)デフォルトのdtおよびddをカスタマイズされたdivまたはspanタグに置き換えます

次のようにデコレータを作成しました。

$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>
4

1 に答える 1

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

要素のオプションで

于 2012-07-03T17:09:50.833 に答える