0

私は次のZend_Form_Elementを持っています:

   $imginstructions = "Some description";

    $img = $this->createElement('select','img');
    $img->setAttrib('class', 'image-select');
    $imgdecorator = $img->getDecorator('Description');
    $imgdecorator->setOption('escape', false);

    $img->setLabel('Image:')
        ->setRequired(true)
        ->addMultiOptions($images)
        ->setValue('')
        ->setDescription($imginstructions)
        ->addErrorMessage('You must select an image');

    $img->size = 5;
    $this->addElement($img);

説明は、選択ボックスの横に表示されます。問題は次のとおりです。エラーがスローされると、レンダリングされたhtmlが変更されるため、説明が選択ボックスの横ではなく下に表示されます。

エラーがスローされる前にレンダリングされたHTML:

 <dd id="img-element">
 <select size="5" class="image-select" id="img" name="img" style="display: none;">
   ...........options..............
 </select>
 <p class="description">Some Description</p></dd> 

エラーがスローされた後にレンダリングされるHTML:

 <dd id="img-element">
 <select size="5" class="image-select" id="img" name="img" style="display: none;">
   ...........options..............
 </select>
 <ul class="errors"><li>You must select an image</li></ul>
 <p class="description">Some Description</p></dd> 

dd要素のDOMツリーの最後の要素としてエラーメッセージを強制的に追加する方法はありますか?

何かのようなもの:

 <dd id="img-element">
 <select size="5" class="image-select" id="img" name="img" style="display: none;">
   ...........options..............
 </select>
 <p class="description">Some Description</p>
 <ul class="errors"><li>You must select an image</li></ul></dd> 

したがって、「ul」はddDOMツリーの最後にあります。

よろしくお願いいたします。この質問への回答に時間を割いていただきありがとうございます。

4

1 に答える 1

0

descriptionクラスのcssを「position:absolute」に変更しました。それはこれを解決したようです。

于 2010-04-27T16:41:27.900 に答える