2

我在 ajax 请求上加载表单时遇到问题。我按照以下步骤操作:

  1. 在布局中启用 jqueryUi。
  2. 创建一个表单元素,如:

    $dob = new ZendX_JQuery_Form_Element_DatePicker('patient_dob');
    $dob->setLabel('')
           ->addFilter('StripTags')
           ->addFilter('StringTrim')
           //->addValidator('Date')
           ->setAttrib('readonly', 'true')
           ->setJQueryParam('dateFormat', 'yy-mm-d')
           ->setDecorators(array(
    'Description', 'Errors', 'UiWidgetElement',
    array(array('data' => 'HtmlTag'), array('tag' => 'Div', 'class'=>'calender_input'))
                 ));
    

    并且只是将元素称为形式。它在页面正常加载但不是 ajax 请求时工作。是什么原因?有什么建议么?我用谷歌搜索了很多。

4

1 回答 1

2

问题是激活日期选择器的 javascript 代码由 ZendX_Jquery 扩展呈现,以在文档准备好时发生:

<script type="text/javascript">
//<!--
$(document).ready(function() {
    $("#patient_dob").datepicker({});
});
//-->

</script>

这对于非 ajax 请求是有意义的,但永远不会在 ajax 请求中执行,因为 document.ready 已经发生在父页面中。您可以直接在视图中添加自己的:

<script type="text/javascript">
    $("#patient_dob").datepicker({});
</script>

我还没有从 Zend Jquery 扩展中找到解决方案,但如果你找到了,请告诉我!

于 2012-03-26T12:05:16.603 回答