我有以下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树的末尾。
谢谢,感谢您花时间回答这个问题!
答案 0 :(得分:0)
我将描述类的css更改为'position:absolute'。 这似乎解决了这个问题。