如何在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元素时,我不知道如何实现它:
$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。但是我不知道如何实现这个接口。谢谢你的帮助。
发布于 2011-02-07 15:24:13
这是因为当与ZendX_jQuery一起使用时,常规的ViewHelper装饰器不会生成一些正确的代码。您必须使用一个实现ZendX_JQuery_Form_Decorator_UiWidgetElementMarker的装饰器,并且提供了一个装饰器。UiWidgetElement
$datePicker->setDecorators(
array(
'UiWidgetElement',
array('ViewScript', array('class' => 'RegElement'))
)
);https://stackoverflow.com/questions/3920367
复制相似问题