0

我正在使用 Zendx Jquery 来实现数据选择器。我需要禁用某些日期,我可以通过手动方式将 JS 添加到布局 html 页面,但 Zendx 会为您在页面上呈现它。

将 JS 添加到布局页面时,以下代码有效:

var unavailableDates = [
new Date(2012, 1, 20).valueOf(),
new Date(2012, 1, 27).valueOf()
];

function unavailable(date) {
if (date.getDay() === 1 && $.inArray(date.valueOf(), unavailableDates) < 0) {
    return [true, ""];
} else {
    return [false, "", "Unavailable"];
}


$(document).ready(function() {
$("#date").datepicker({
    beforeShowDay: unavailable
});
});​

当我使用 Zendx 执行此操作时,我的表单代码如下:

$birthdate = new ZendX_JQuery_Form_Element_DatePicker('birthdate');
    $birthdate->setLabel('Return Date:')                    
                ->setJQueryParam('dateFormat', 'dd.mm.yy')
                ->setJQueryParam('changeYear', 'false')
                ->setJqueryParam('changeMonth', 'true')
                ->setJqueryParam('regional', 'en')
                ->setJqueryParam('yearRange', "2012:2012")  
                ->setJqueryParam('minDate', +1)
                ->setJqueryParam('maxDate', "+1m +10d")                 
                //->setValue(Zend_Date::now()->toString('dd.MM.yyyy'))              
                //->setJqueryParam('beforeShowDay', unavailableDates)
                ->addValidator(new Zend_Validate_Date(
                array(
                'format' => 'dd.mm.yyyy',
                )))
                ->setRequired(true);

它呈现在页面顶部:

<script type="text/javascript">

//

$(document).ready(function() { $("#birthdate").datepicker({"dateFormat":"dd.mm.yy","changeYear":"false","changeMonth":"true", "regional":"en","yearRange":"2012:2012","minDate":1,"maxDate":"+1m +10d","beforeShowDay":"unavailableDates"}); }); //]]>

我得到一个控制台错误:

未捕获的类型错误:对象不可用日期没有“应用”方法

它不会调用函数availableDates,但它不会工作。有人有同样的问题吗?

干杯

Ĵ

4

1 回答 1

0

我通过更改视图禁用 Zend Rendering Javascript onLoad 对其进行了排序。所以现在 Zendx 只加载到库中,我可以在布局中运行我自己的 datepicker 代码:)!

this->view->jQuery() ->setRenderMode(ZendX_JQuery::RENDER_LIBRARY);

于 2012-05-14T10:59:02.047 回答