- 2013-11-19
先ほどの設定で、JavaScriptの記述は別ファイルのJavaScriptファイルに保存し、それを読み込んで使うようにしてみます。
class指定はひとつのみ
class指定を複数指定した場合
ひとつは、値を自動で設定する為の識別名として「date_now」、もうひとつは書式の変更をする為の「redbg」。
例えば、前回決算期間
〜このページのソース部分は、次の様になります。
#html{ {
<style type="text/css">
.redbg { background-color: #FFDDDD; }
.bluebg { background-color: #DDDDFF; }
.greenbg { background-color: #DDFFDD; }
</style>
<link rel="stylesheet" href="./jquery/css/redmond/jquery-ui-1.10.3.custom.css">
<script src="./jquery/js/jquery-1.9.1.js"></script>
<script src="./jquery/js/jquery-ui-1.10.3.custom.js"></script>
<script src="./myjs/my-date-lib.js"></script>
} }
*** class指定はひとつのみ
#html{ {
<INPUT type="TEXT" name="date1" class="date_now" value="">
} }
*** class指定を複数指定した場合 [#p40f349f]
ひとつは、値を自動で設定する為の識別名として「date_now」、もうひとつは書式の変更をする為の「redbg」。
#html{ {
<INPUT type="TEXT" name="date2" class="date_now redbg" value="">
<INPUT type="TEXT" name="date2" class="date_now0 redbg" value="">
<INPUT type="TEXT" name="date2" class="date_now1 redbg" value="">
<INPUT type="TEXT" name="date2" class="date_now2 redbg" value="">
} }
*** 例えば、前回決算期間
#html{ {
<INPUT type="TEXT" name="date3" class="LastKessanStart redbg" value=""> 〜 <INPUT type="TEXT" name="date4" class="LastKessanEnd bluebg" value="">
} }
ただ、実質的には、以下ような記述を各ページで記載して使うことになると思います。スタイルシートの記述をなくしたので、redbgなどの表示スタイルは利用されていないことになります。
#html{ {
<script src="./jquery/js/jquery-1.9.1.js"></script>
<script src="./myjs/my-date-lib.js"></script>
現在:
<INPUT type="TEXT" name="date2" class="date_now redbg" value="">
前回会計期間:
<INPUT type="TEXT" name="date3" class="LastKessanStart redbg" value=""> 〜 <INPUT type="TEXT" name="date4" class="LastKessanEnd bluebg" value="">
} }
これ以外が、
<script src="./myjs/my-date-lib.js"></script>
で分かるように、my-date-lib.jsというファイル名にして、QHMのindex.phpが存在するフォルダの下にmyjsを作ってアップロードした事になります。
my-date-lib.jsは、いかの様な感じになります。
説明を追加するなどして、分かりやすくしておきます。
// =========================================================================
// 日付の自動入力ライブラリ
// 2013-11-18 by I.I
// =========================================================================
// 決めておいたクラス指定をしたテキストボックスに
// 現在のPCの時計から日時等を自動入力する
//
// class : 表示例
// ------------------------------------------
// date_now0 : 2013/11/18
// date_now1 : 2013/11/18 15:54:23
// LastKessanStart : 2012/06/01
// LastKessanEnd : 2013/05/31
// =========================================================================
$(function() {
$(".date_now0").val(DateYYYMMDD(1));
$(".date_now1").val(DateYYYMMDD(1));
$(".date_now").val(DateYYYMMDD());
$(".date_now1").val(DateYYYMMDD(1));
$(".date_now2").val(DateYYYMMDD(2));
$(".LastKessanStart").val(DateLastKessanStart());
$(".LastKessanEnd").val(DateLastKessanEnd());
});
// typeno
// 0 : yyyy/mm/dd
// 1 : yyyy/mm/dd hh:mm:ss
function DateYYYMMDD(typeno) {
var now = new Date();
var year = now.getYear(); // 年
var month = now.getMonth(); // 月
var day = now.getDate(); // 日
var hour = now.getHours(); // 時
var min = now.getMinutes(); // 分
var sec = now.getSeconds(); // 秒
if (year < 2000) { year += 1900; }
month +=1;
// 数値が1桁の場合、頭に0を付けて2桁で表示する指定
if (month < 10) { month = "0" + month; }
if (day < 10) { day = "0" + day; }
if (hour < 10) { hour = "0" + hour; }
if (min < 10) { min = "0" + min; }
if (sec < 10) { sec = "0" + sec; }
switch (typeno) {
case 1 : r = year+"/"+month+"/"+day;
break;
case 2 : r = year+"/"+month+"/"+day+" "+hour+":"+min+":"+sec;
break;
default :
r = year+"/"+month+"/"+day;
}
return r;
}
function DateLastKessanStart() {
return "2012/06/01";
}
function DateLastKessanEnd() {
return "2013/05/31";
}
課題
上記に今月の開始日を自動入力出来る仕組みを追加して、新しく作成したページのテキストボックスで、そのページが表示されたら自動的に入力されるようにしてください。