Zenx Jquery Datepicker 禁用星期日和节假日

Posted

技术标签:

【中文标题】Zenx Jquery Datepicker 禁用星期日和节假日【英文标题】:Zenx Jquery Datepicker Disable sundays and holidays 【发布时间】:2012-05-20 21:13:57 【问题描述】:

我正在使用 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","re​​gional":"en","yearRange" :"2012:2012","minDate":1,"maxDate":"+1m +10d","beforeShowDay":"unavailableDates"); ); //]]>

我得到一个控制台错误:

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

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

干杯

J

【问题讨论】:

对,我得到了一些我禁用 Zend onLoad javascript 的地方,所以它只加载到库中。 this->view->jQuery() ->setRenderMode(ZendX_JQuery::RENDER_LIBRARY); 【参考方案1】:

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

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

【讨论】:

以上是关于Zenx Jquery Datepicker 禁用星期日和节假日的主要内容,如果未能解决你的问题,请参考以下文章

JQuery ui - datepicker,禁用特定日期

jQuery UI Datepicker - 如何动态禁用特定日期

在 jQuery UI Datepicker 中禁用未来日期

如何在 JQuery Datepicker 中禁用以前的日期

禁用jQuery UI datepicker的焦点设置

在 Jquery Ui Datepicker 中禁用今天之后的未来日期