2011-09-30 5 views
1

Dojo 요소를 사용하여 Zend Form을 만들고 있는데 CSS를 사용하여 양식 요소를 배치하고 싶습니다. 불행히도이 요소에는 내 양식의 다른 모든 요소와 같은 ID가 제공되지 않습니다.Zend Dojo Element Id 없음

출력

<dt id="purchase_required-label"></dt> 
<dd><table id="widget_purchase_required" class="dijit dijitReset dijitInlineTable disabled dijitTextBox dijitTextBoxDisabled" cellspacing="0" cellpadding="0" wairole="presentation" dojoattachevent="onmouseenter:_onMouse,onmouseleave:_onMouse" name="purchase_required" style="display: -moz-inline-stack;" role="presentation" widgetid="purchase_required"></table></dd> 
<dt id="purchase_supplier_id-label"></dt> 
<dd id="purchase_supplier_id-element"></dd> 

예제 코드

$purchase_required = new Zend_Dojo_Form_Element_DateTextBox('purchase_required'); 
$purchase_required->setLabel('Required Date'); 
$purchase_required->setAttribs(array("dojoType"=>"dijit.form.DateTextBox")); 
$purchase_required->setRequired(TRUE); 
$purchase_required->addErrorMessage('Please enter date as YYYY-MM-DD'); 
$this->addElement($purchase_required); 

이 버그인가, 아니면 내가 뭔가를 놓친 게 뭐죠?

답변

0

loadDefaultDecorators을 덮어 쓰면 해당 요소에서 Zend_Dojo_Form_Element_Dijit의 ID가 제거 된 것처럼 보입니다. Dijit의 수퍼 클래스에서 일어나는 것과 같은 것을 사용하여 복원 할 수 있습니다. Zend_Form_Element :

$getId = create_function('$decorator', 
          'return $decorator->getElement()->getId() 
            . "-element";'); 
$purchase_required->addDecorator(
     'HtmlTag', 
     array(
       'tag' => 'dd', 
       'id' => array('callback' => $getId) 
      ) 
);