【问题标题】:Zend Dojo Element Id missingZend Dojo 元素 ID 缺失
【发布时间】:2011-09-30 13:08:11
【问题描述】:

我正在使用 Dojo 元素创建 Zend 表单,并且我想使用 CSS 对表单元素进行布局。不幸的是,该元素没有像我的表单中的所有其他元素一样被赋予 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);

这是一个错误还是我遗漏了什么?

【问题讨论】:

    标签: css zend-framework dojo


    【解决方案1】:

    当它覆盖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)
                  )
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-30
      • 2015-06-10
      • 1970-01-01
      • 2023-02-11
      • 1970-01-01
      • 2015-07-29
      • 2019-11-30
      • 1970-01-01
      相关资源
      最近更新 更多