symfonyのJavascriptカレンダーの表示座標を修正する

もうすぐ新卒免許が失効する、渡邊です。はじめまして。

今回は、PHPのフレームワーク「symfony」のフォームヘルパー「input_date_tag」を、jqueryで補完します。

input_date_tag」のリッチフォームは便利で、入力に関してUIとバリデーションの双方を支援してくれます。

<?php echo input_date_tag('name', 'now', 'rich=true') ?>

しかし、この「input_date_tag」のリッチフォームは、IEだとうまく動作しません。

画面の下部にカレンダーがある場合、表示位置が画面から見えなくなることがあります。

そこで、下記のスクリプトを用意しました。

このコードを利用することで、ボタンの場所にカレンダーを表示することができます。

※コードの実行には、jqueryが必要です。

<script type="text/javascript">
    var Symfony;
    if (!Symfony) Symfony = {};
    Symfony.Calendar = {}
    Symfony.Calendar.Initialize = function (calendarId) {
        $('#' + calendarId).click( function() {
            $('div.calendar').css('top', $('#' + calendarId).offset().top + "px");
        });
    }

    $(function() {
        $('.button').each( function() {
            if($(this).attr('id').match(/^trigger_.*/)) {
                Symfony.Calendar.Initialize($(this).attr('id'));
            }
        });
    });
</script>

カヤックでは開発環境を最適化したいクリエーターを募集しています!