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"}); }); //]]>

そして、コンソールエラーが発生します:

キャッチされていない TypeError: ObjectavailableDates にはメソッド 'apply' がありません

関数availableDatesを呼び出すことはありませんが、機能しません。誰かが同じ問題を抱えていましたか?

乾杯

J

4

1 に答える 1

0

ビューを変更してZend Rendering Javascript onLoadを無効にしてソートしました。これで、Zendx はライブラリにのみ読み込まれ、独自の日付ピッカー コードをレイアウトで実行できるようになりました :)!

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

于 2012-05-14T10:59:02.047 に答える