アプリ版:「スタンプのみでお礼する」機能のリリースについて

<form name="time_hikaku">
開始時刻
<input type="text" name="hour" maxlength="2">
<input type="text" name="min" maxlength="2">
終了時刻
<input type="text" name="end_hour" maxlength="2">
<input type="text" name="end_min" maxlength="2">
</form>

で入力した時刻を比較し、終了時刻が開始時刻
より小さい場合にAlert表示したいのですが、
どうすれば、Javascriptで時刻比較できますでしょうか?
09:00 8:00など、0が入力される可能性もあるので、
時間関数などがあればできそうですが。。

A 回答 (1件)

それぞれの時刻を「分」に直して数値比較してはどうでしょうか。



# スクリプト部
function checkTime(f) {
  // + f.min.value だと文字列連結になってしまうので、- 0 で数値化する。
  var stime = f.hour.value * 60 + (f.min.value - 0);
  var etime = f.end_hour.value * 60 + (f.end_min.value - 0);

  if (stime > etime) {
    alert("時刻を正しく入力してください。");
    return false;
  }
  return true;
}

# フォーム部
<form name="time_hikaku" onSubmit="return checkTime(this)">
※onSubmitから、trueを返せば送信、falseを返せば送信キャンセルとなる。

ここでは送信時にチェックするように書きましたが、好みのタイミングでcheckTimeを呼び出せばOKです。
その際、引数にはフォームオブジェクトを指定してください。
    • good
    • 0
この回答へのお礼

できました(^^)ありがとうございます。
数学的ですごいです。

お礼日時:2003/05/19 22:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!