У меня есть форма Zend, для которой я включил компоненты jQuery через:
ZendX_JQuery::enableForm($this);
, а затем добавил несколько не-jQuery элементов и один jQuery DatePicker, определенный как:
$testing = new ZendX_JQuery_Form_Element_DatePicker('dp1', array('jQueryParams' => array('dateFormat' => 'yy-mm-dd')));
$testing->setLabel('Date of Birth 2')
->setRequired(true)
->addValidator('NotEmpty');
Затем я настроил декораторы следующим образом (сначала для всех элементов, а затем заменил определение декоратора для DatePicker):
$this->clearDecorators();
$this->addDecorator('FormElements')
->addDecorator('HtmlTag', array('tag' => 'div', 'class'=>'form-block'))
->addDecorator('Form');
$this->setElementDecorators(array(
array('ViewHelper'),
array('Errors'),
array('Description', array('tag' => 'div', 'class' => 'tooltip')),
array('Label', array('separator'=>' ')),
array('HtmlTag', array('tag' => 'div', 'class'=>'element-block')),
));
$formJQueryElements = array(
array('UiWidgetElement', array('tag' => '')),
array('Errors'),
array('Description', array('tag' => 'div', 'class' => 'tooltip')),
array('Label', array('separator' => ' ')),
array('HtmlTag', array('tag' => 'div', 'class' => 'element-block')),
);
$this->getElement('dp1')->clearDecorators();
$this->getElement('dp1')->setDecorators($formJQueryElements);
Кажется, что все мои поля отображаются правильно, за исключением DatePicker, который каким-то образом был преобразован в текстовое поле. HTML-код для поля выглядит так:
<div class="element-block">
<label for="dp1" class="required">Date of Birth 2</label>
<input type="text" name="dp1" id="dp1" value="">
</div>
, который не является DatePicker. Что я упустил при настройке или какую ошибку я допустил здесь?
Большое спасибо.