Как я могу добавить описание к 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> 

Есть ли способ принудительно добавить сообщение об ошибке в качестве последнего элемента в дереве DOM для элемента dd?

Что-то типа:

 <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.

Спасибо, я ценю, что вы нашли время, чтобы ответить на этот вопрос!


person Mallika Iyer    schedule 26.04.2010    source источник


Ответы (1)


Я изменил css класса описания на «позиция: абсолютная». Кажется, это решило это.

person Mallika Iyer    schedule 27.04.2010