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"}); }); //]]>
そして、コンソールエラーが発生します:
キャッチされていない TypeError: ObjectavailableDates にはメソッド 'apply' がありません
関数availableDatesを呼び出すことはありませんが、機能しません。誰かが同じ問題を抱えていましたか?
乾杯
J