- PR -

[javaScript]textに日付をセット後、自動で日付チェックをする方法

1
投稿者投稿内容
java初心者
ベテラン
会議室デビュー日: 2007/07/23
投稿数: 54
投稿日時: 2007-08-20 10:39
javaScriptに関するご質問させて下さい。

-処理の流れ---------------------------------------------------------
1.日付を入れる為のtextを2つ用意しました。
 (開始日付と終了日付です→いつからいつまでといった感じです)

2.画面表示時onloadにて、終了日付に現在日付、開始日付に現在日付から
10日前の日付がセットされます。

3.テキスト欄をクリックすると、自動的にカレンダーが表示され、
カレンダーから選択した日付が入力欄にセットされます。
yyyymmdd(直接入力は不可)

4.一度セットした日付で終了日付が開始日付よりも過去の場合、
自動的に開始日付が終了日付と同じ日付に修正される。
------------------------------------------------------------------------

-jsp--------------------------------------------------------------------
<html:text property="date1" onclick="getS(this);" />
<html:text property="date2" onclick="getE(this);" />
------------------------------------------------------------------------

-js---------------------------------------------------------------------
function getS(target) {
//カレンダーを呼び出す
showcal(target);
//終了日付が開始日付よりも過去の場合
if(document.forms[0].date1.value > document.forms[0].date2.value){
//開始日付を終了日付を同じにする
document.forms[0].date1.value = document.forms[0].date2.value;
}
}

function getE(target) {
//カレンダーを呼び出す
showcal(target);
//終了日付が開始日付よりも過去の場合
if(document.forms[0].date1.value > document.forms[0].date2.value){
//開始日付を終了日付を同じにする
document.forms[0].date1.value = document.forms[0].date2.value;
}
}
------------------------------------------------------------------------

未解決の内容として、
項目4にある、入力チェックとなります。
下記記載の処理を行うと、

1.最初にonloadにて現在日付がセットされ、手動で
カレンダーから終了日付を過去の日付にセットすると、
if文チェックはスルーされ、過去の日付がセットされる。

2.日付セット後に自動で入力チェックが走り、日付の修正を
行いたいのですが、チェックが走らず、再度、カレンダー
を呼び出した際に、修正が入ってしまいます。

どのような処理内容にすれば、
日付のセット後、自動でチェックし修正するようになるのでしょうか?
※1.onchangeを検討したのですが、
フォーカスが外れないと作動しない為、断念しました。

皆様、ご教授をお願い致します。



[ メッセージ編集済み 編集者: java初心者 編集日時 2007-08-20 11:00 ]
KOX
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 142
投稿日時: 2007-08-20 15:47
まずは
HTML化したソースでalert()を入れるなどをして
デバックしてみてはどうでしょうか?
そのときの処理の流れを読めば分かると思います。

なんとなく、showcal(target);で
window.open()あたりをしている予感。
java初心者
ベテラン
会議室デビュー日: 2007/07/23
投稿数: 54
投稿日時: 2007-08-21 10:39
ご回答ありがとうございます。

HTML化したソースで確認をしてみます。

お忙しいところ、
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)