No.1ベストアンサー
- 回答日時:
よくわからない部分があるので補足願います。
============
開始日 _年 _月 _日
終了日 _年 _月 _日
[さらに追加]
[テキストボックス]
============
↑こんな画面があったとして・・・
利用者が開始日と終了日を入力(選択)する。
[さらに追加]ボタンを押されたら、
・全て入力されているか、
・日付が前後していないか、
をチェックし、NGならアラートを出す。
OKであればテキストボックスに日付を出力…なんの日付を出力するんでしょうか??
この回答への補足
回答ありがとうございます。
============
[テキストボックス]
[セレクトボックス
開始日 _年 _月 _日~終了日 _年 _月 _日]
[追加ボタン]
============
利用者が開始日と終了日を選択
↓ false
日付の妥当性チェック(開始日、終了日ともに)→アラート出力
↓true false
日付画前後していないかチェック→アラート出力→アラート出力
↓true
日付_年 _月 _日~_年 _月 _日をテキストボックスに出力
といった感じです。説明不足ですいません。
No.4
- 回答日時:
#3です。
そこまで書いて何がわからないのでしょうか?
十分ご自身で解くスキルはありそうです。
ざっと書いてみましたので参考にしてみてください。
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
function addFunc(f){
var y1 = f.y1.value;
var m1 = f.m1.value -1;
var d1 = f.d1.value;
var y2 = f.y2.value;
var m2 = f.m2.value -1;
var d2 = f.d2.value;
var start_date = setDate(y1,m1,d1);
var end_date = setDate(y2,m2,d2);
if(start_date==false || end_date==false){
alert("日付が変");
return false;
}
if(start_date>end_date){
alert("日付が逆?");
return false;
}
var str ="";
str+=start_date.getFullYear()+"年";
str+=(start_date.getMonth()+1)+"月";
str+=start_date.getDate()+"日";
str+="~";
str+=end_date.getFullYear()+"年";
str+=(end_date.getMonth()+1)+"月";
str+=end_date.getDate()+"日";
f.text1.value=str
return true;
}
function setDate(y,m,d){
var date=new Date(y,m,d);
if(date.getFullYear()!=y || date.getMonth()!=m || date.getDate()!=d ) return false;
return date;
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
開始日:<SELECT name="y1" >
<OPTION value="2000">00</OPTION>
<option value="2006">06</option>
<option value="2007"selected>07</option>
<option value="2008">08</option>
<option value="2009">09</option>
<option value="2010">10</option>
</SELECT>年
<SELECT name="m1" >
<option value="1"selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</SELECT>月
<SELECT name="d1">
<option value="1"selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</SELECT>日<br />
開始日:<SELECT name="y2" >
<OPTION value="2000">00</OPTION>
<option value="2006">06</option>
<option value="2007"selected>07</option>
<option value="2008">08</option>
<option value="2009">09</option>
<option value="2010">10</option>
</SELECT>年
<SELECT name="m2" >
<option value="1"selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</SELECT>月
<SELECT name="d2">
<option value="1"selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</SELECT>日<br>
<INPUT type="button" value="追加" onClick="addFunc(this.form);"><br>
<INPUT type="text" name="text1" value="" size="50" readonly>
</FORM>
</BODY>
</HTML>
回答ありがとうございます!
私が思っていたものそのものです。
初心者なのでネットであれこれ参考にしたのですが、応用が利かなくて...今回のを参考にさらに応用力がつくように勉強していきたいと思います。
本当にありがとうございます。
No.3
- 回答日時:
とりあえず一度日付型のデータにしてしまうとよいでしょう。
こんな感じでわかりますか?
<script language=javascript>
function test(){
//月は0月からはじまるので注意
var d1=new Date(2006,11, 15);
var d2=new Date(2006,11, 16);
if(d1 < d2){
str =d1.getFullYear()+"年"+(d1.getMonth()+1)+"月"+d1.getDate()+"日";
str+="~";
str+=d2.getFullYear()+"年"+(d2.getMonth()+1)+"月"+d2.getDate()+"日";
alert(str)
}
}
</script>
<form>
<input type=button value="test" onClick="test()">
</form>
ただし日付けの妥当性については、Date()は拡大解釈
してしまうようなので、できあがった日付けデータから
年月日を取り出して、元の数字と違わないかチェックすると
よいかもしれません。
この回答への補足
回答ありがとうございます。
今のところここまでできたのですが、
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
function dateCheck(obj){
obj = obj.form;
var years = obj.years.value;
var months = obj.months.value;
var days = obj.days.value;
var flag = true;
years = parseInt(years);
months = parseInt(months) - 1;
days = parseInt(days);
var dates = new Date(years,months,days);
if (dates.getYear() < 1900) {
if (years != dates.getYear() + 1900) { flag = false; }}
else {if (years != dates.getYear()) { flag = false; }}
if (months != dates.getMonth()) { flag = false; }
if (days!= dates.getDate()) { flag = false; }
if (flag) {window.alert("入力された日付は存在します");}
else {window.alert("入力された日付は存在しません");}
}
// -->
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<SELECT name="years" >
<OPTION value="2000">00</OPTION>
<option value="2006">06</option>
<option value="2007"selected>07</option>
<option value="2008">08</option>
<option value="2009">09</option>
<option value="2010">10</option>
</SELECT>
<SELECT name="months" >
<option value="1"selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</SELECT>
<SELECT name="days">
<option value="1"selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</SELECT>
<INPUT type="button" value="日付チェック" onClick="dateCheck(this);">
</FORM>
</BODY>
</HTML>
あとは
同様なセレクトボックスをもうひとつ作成し、ボタンをクリックすると日付の期間が前後していないかチェックするようにようにしたいのですが、なにかアドバイスよろしくお願いします。
回答ありがとうございました。良回答に選んだつもりが質問に対する回答は2個しか採点できないんですね。
初めての採点だったので申し訳ない気持ちでいっぱいです。
とてもよい回答をしていただきありがとうございました。
No.2
- 回答日時:
セレクトボックスは2群計6個と読みましたが、
それぞれに日付チェックも必要ですか?
どちらか一方に存在しないだけでアラートの意味不明。
つまり、片方は狂っていてもいいと?
テキストボックスに日付を、はムダでは?
差分の日数のこと?
この回答への補足
回答ありがとうございます。
============
[テキストボックス]
[セレクトボックス
開始日 _年 _月 _日~終了日 _年 _月 _日]
[追加ボタン]
============
利用者が開始日と終了日を選択
↓ false
日付の妥当性チェック(開始日、終了日ともに)→アラート出力
↓true false
日付画前後していないかチェック→アラート出力→アラート出力
↓true
日付_年 _月 _日~_年 _月 _日をテキストボックスに出力
といった感じです。説明不足ですいません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/01/23 17:13
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 09:24
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
- Access(アクセス) Access DTPickerの初期表示月を変えたい 1 2022/08/02 08:55
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- Visual Basic(VBA) 翌日にお休み予定の従業員がいる場合にアラートを出したい 1 2023/07/11 11:18
- JavaScript 空白で入力フォームのボタンをクリックしたら、ブラウザの上部からjavascriptで 表示されるアラ 1 2022/05/20 11:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
selectを使った計算
-
selectボックスの選択結果を変...
-
JavaScriptの質問です。どなた...
-
ラジオボタンとプルダウンを連...
-
プルダウン選択を変更すると、...
-
リストボックス内の重複したも...
-
セレクトボタンで特定の項目で...
-
javascriptで合計金額を算出し...
-
javascriptでセレクトボックス...
-
jqueryでセレクトメニュー+スク...
-
セレクトボックスを使用した、...
-
selectを変更不可にしたい
-
javascriptで計算フォームを作...
-
【JavaScript】プルダウンで数...
-
今日の日付を自動的にセレクト...
-
コードレビューをお願いします。
-
複数条件の入力チェックについて
-
return trueとreturn falseの用...
-
追加ボタンを押した際に ok ボ...
-
チェックボックスのON/OFFでVal...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
全てのselect要素をデフォルト...
-
javascriptでセレクトボックス...
-
Selectボックスの一覧表示方法
-
JavaScriptで<select>の<option...
-
プルダウン選択を変更すると、...
-
select要素のvalueを配列で取得...
-
selectを変更不可にしたい
-
<input>の選択肢をプルダウンメ...
-
ラジオボタンとプルダウンを連...
-
【JS】selectでchangeした時の...
-
VBScriptでHTMLのセレクトボッ...
-
リストボックス内の重複したも...
-
同じ名前のセレクトがある場合...
-
プルダウンの値によって活性・...
-
selectが変更されたらnameを指...
-
【javascript】連想配列からセ...
-
3つのselectでURLパラメータを...
-
複数のプルダウンを1つにまとめ...
-
selectボックスで選択数を制限...
-
セレクトボックスで配列を呼び...
おすすめ情報