2010-10-13 7 views
1

Как использовать частичный декоратор в Jquery ElementZendX Jquery декоратор

Я использую этот код для элемента формы:

$title = new Zend_Form_Element_Text('title'); 
    $title->setRequired(true) 
      ->setAttrib('class', 'inputbox') 
      ->setLabel('Title'); 
    $title->viewScript = 'RegElement.phtml'; 
    $title->setDecorators(
      array(
       array('ViewScript', array('class' => 'RegElement')) 
      ) 
    ); 

Но когда я использую Jquery Element я не знают, как осуществить это:

$datePicker = new ZendX_JQuery_Form_Element_DatePicker(
        "datePicker1", array("label" => "Date:") 
    ); 
    $datePicker->viewScript = 'RegElement.phtml'; 
    $datePicker->setDecorators(
      array(
       array('ViewScript', array('class' => 'RegElement')) 
      ) 
    ); 

    //views/scripts/RegElement.phtml 
    <li class="row <?php echo $this->class ?>"> 
     <div class="cont-error"> 
     <?php echo $this->formErrors($this->element->getMessages()); ?> 
     </div> 
     <div class="rowfields"> 
      <?php echo $this->formLabel($this->element->getName(), 
         $this->element->getLabel()) ?> 
     <?php 
      echo $this->{$this->element->helper}(
       $this->element->getName(), 
       $this->element->getValue(), 
       $this->element->getAttribs() 
      ) 
     ?> 
     </div> 
     <div class="hint"><?php echo $this->element->getDescription() ?></div> 
    </li> 

И показать эту ошибку:

Warning: Exception caught by form: Cannot render jQuery form element without at least one decorator implementing the 'ZendX_JQuery_Form_Decorator_UiWidgetElementMarker' interface. 

Мне нужна дата datePicker с таким же форматом. но я не знаю, как реализовать этот интерфейс. Спасибо за помощь.

ответ

2

Это потому, что обычный декоратор ViewHelper не создает надлежащего кода при использовании с ZendX_jQuery. Вы должны использовать один декоратор, который реализует ZendX_JQuery_Form_Decorator_UiWidgetElementMarker, и есть один предоставленный. UiWidgetElement

$datePicker->setDecorators(
      array(
       'UiWidgetElement', 
       array('ViewScript', array('class' => 'RegElement')) 
      ) 
    ); 
Смежные вопросы