もうすぐ新卒免許が失効する、渡邊です。はじめまして。
今回は、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>