カレンダーイベント

 カレンダーには、いくつかのイベントが用意されています。

onBeforeDeselect日の選択が解除される前
onBeforeSelect日が選択される前
onChangePage他の月が表示された
onClearクリアされた
onDeselect日の選択が解除された
onRender表示が完了した
onResetリセットされた
onSelect日が選択された

手軽なところでカレンダーの表示が完了したらアラートダイアログを表示してみます。表示完了時に関数を呼び出すようにするには

カレンダーオブジェクト.onRender = 処理先関数名

と指定します。(実際のサンプルを実行する

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>yuiカレンダーサンプル(イベント処理)</title>
<link rel="stylesheet" href="calendar.css" type="text/css" media="all">
<script src="YAHOO.js" type="text/javascript"></script>
<script src="event.js" type="text/javascript"></script>
<script src="calendar.js" type="text/javascript"></script>
<script type="text/javascript"><!--
function dispCalender()
{
calenderObj = new YAHOO.widget.Calendar("calenderObj","calender");
calenderObj.onRender = check;
calenderObj.render();
}
function check()
{
alert("描画完了");
}
// --></script>
</head>
<body>
<h1>yuiカレンダーサンプル(イベント処理)</h1>
<form>
<input type="button" value="カレンダーを表示" onClick="dispCalender()">
</form>
<div id="calender"></div>
</body>
</html>

 カレンダーの日が選択された場合にはonSelect(またはonBeforeSelect)を使います。(実際のサンプルを実行する

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>yuiカレンダーサンプル(イベント処理)</title>
<link rel="stylesheet" href="calendar.css" type="text/css" media="all">
<script src="YAHOO.js" type="text/javascript"></script>
<script src="event.js" type="text/javascript"></script>
<script src="calendar.js" type="text/javascript"></script>
<script type="text/javascript"><!--
function dispCalender()
{
calenderObj = new YAHOO.widget.Calendar("calenderObj","calender");
calenderObj.onSelect = check;
calenderObj.render();
}
function check()
{
alert("選択されました");
}
// --></script>
</head>
<body>
<h1>yuiカレンダーサンプル(イベント処理)</h1>
<p>選択するとアラートダイアログが表示されます</p>
<form>
<input type="button" value="カレンダーを表示" onClick="dispCalender()">
</form>
<div id="calender"></div>
</body>
</html>

 選択が解除されたらイベントを呼び出すようにするにはonDeselect(またはonBeforeDeselect)を使います。(実際のサンプルを実行する

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>yuiカレンダーサンプル(イベント処理)</title>
<link rel="stylesheet" href="calendar.css" type="text/css" media="all">
<script src="YAHOO.js" type="text/javascript"></script>
<script src="event.js" type="text/javascript"></script>
<script src="calendar.js" type="text/javascript"></script>
<script type="text/javascript"><!--
function dispCalender()
{
calenderObj = new YAHOO.widget.Calendar("calenderObj","calender");
calenderObj.onDeselect = check;
calenderObj.render();
}
function check()
{
alert("選択が解除されました");
}
// --></script>
</head>
<body>
<h1>yuiカレンダーサンプル(イベント処理)</h1>
<p>選択してから、その選択を解除するとアラートダイアログが表示されます</p>
<form>
<input type="button" value="カレンダーを表示" onClick="dispCalender()">
</form>
<div id="calender"></div>
</body>
</html>

 現在表示されている月ではない他の月のカレンダーに切り替わるとonChangePageイベントが発生します。(実際のサンプルを実行する

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>yuiカレンダーサンプル(イベント処理)</title>
<link rel="stylesheet" href="calendar.css" type="text/css" media="all">
<script src="YAHOO.js" type="text/javascript"></script>
<script src="event.js" type="text/javascript"></script>
<script src="calendar.js" type="text/javascript"></script>
<script type="text/javascript"><!--
function dispCalender()
{
calenderObj = new YAHOO.widget.Calendar("calenderObj","calender");
calenderObj.onChangePage = check;
calenderObj.render();
}
function check()
{
alert("ページが切り替えボタンが押されました");
}
// --></script>
</head>
<body>
<h1>yuiカレンダーサンプル(イベント処理)</h1>
<p>別の月に移動するボタンをクリックするとアラートダイアログが表示されます</p>
<form>
<input type="button" value="カレンダーを表示" onClick="dispCalender()">
</form>
<div id="calender"></div>
</body>
</html>

 日が選択されたら、その日が何日なのかを取得したい場合があります。この場合にはselectedDatesプロパティを参照します。日付の範囲が指定されている場合には配列として返されます。以下のサンプルはクリックすると、クリックした日付を表示します。(実際のサンプルを実行する

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>yuiカレンダーサンプル(イベント処理)</title>
<link rel="stylesheet" href="calendar.css" type="text/css" media="all">
<script src="YAHOO.js" type="text/javascript"></script>
<script src="event.js" type="text/javascript"></script>
<script src="calendar.js" type="text/javascript"></script>
<script type="text/javascript"><!--
function dispCalender()
{
calenderObj = new YAHOO.widget.Calendar("calenderObj","calender");
calenderObj.onSelect = check;
calenderObj.render();
}
function check()
{
alert(calenderObj.selectedDates+"が選択されました");
}
// --></script>
</head>
<body>
<h1>yuiカレンダーサンプル(イベント処理)</h1>
<p>選択した日付が表示されます</p>
<form>
<input type="button" value="カレンダーを表示" onClick="dispCalender()">
</form>
<div id="calender"></div>
</body>
</html>

[複数の日を選択できるようにする]
[目次へ]

(2006.2.20)