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' 位于 dd DOM 树的末尾。

谢谢,感谢您抽出宝贵时间回答这个问题!

4

1 回答 1

0

我将描述类的 css 更改为“位置:绝对”。这似乎解决了这个问题。

于 2010-04-27T16:41:27.900 回答