如何将描述附加到Zend_Form_Element?

时间:2010-04-26 16:30:49

标签: php zend-framework zend-form decorator zend-form-element

我有以下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树的末尾。

谢谢,感谢您花时间回答这个问题!

1 个答案:

答案 0 :(得分:0)

我将描述类的css更改为'position:absolute'。 这似乎解决了这个问题。