質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Q&A

解決済

1回答

1348閲覧

htmlのdatetime-localの入力上限と下限が設定されない

tokotaku

総合スコア63

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

0グッド

0クリップ

投稿2022/06/14 07:59

編集2022/06/14 23:41

HTMLで日時入力にdatetime-localを利用しているのですが、入力の上限と下限が設定できません。
カレンダーからの選択では制限されているのですが、直接入力すると入力できてしまいます。

直接入力時は送信時に個別でエラー対応するしかないのでしょうか?

HTML

1<html lang="ja"> 2<script type="text/javascript"> 3function fnTest() { 4 document.F1.submit(); 5 submitbtn.click(); 6} 7</script> 8 9<form name="F1" class="testForm" id="TestForm" action="./test2.php" method="post"> 10 <div id="DateTime"> 11 <label id="DateTimeLabel" for="SetDay">日時</label><br> 12 <input type="datetime-local" name="setDay" id="SetDay" min="2017-06-01T08:30" max="2100-06-01T08:30" required> 13 </div><br> 14</form> 15 16<input class="sendBtn" id="SendBtn" type="button" value="送信" onclick="fnTest()"> 17</html>

上記のコードの場合、カレンダーからであれば2017年以前と2100年以降は選択できないのですが、
例えば入力で全部1を入力すると1111年11月11日11時11分が入力できて送信できてしまいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Google Chrome の実装は、そういうものです。
入力の制限はされませんが、:invalid セレクタや input.validity.valid などには反映されますし、フォームを送信しようとするとエラーが表示されます。

inputイベントやchangeイベントを監視して範囲外の値だったら範囲内にセットし直すという手もあります。

投稿2022/06/14 08:08

編集2022/06/14 23:35
int32_t

総合スコア20856

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tokotaku

2022/06/14 23:25

エラーが表示されないのですが、設定の問題ですか?
int32_t

2022/06/14 23:34

質問文のコードは一部のみのようなのでエラーが表示されない原因ははっきとはわかりませんが、 <form>に入っていて、ユーザが <input type=submit> などを押した場合にエラーが表示されます。
tokotaku

2022/06/14 23:42

submitをjavascriptの関数を経由して発生させているのが問題なのでしょうか?
int32_t

2022/06/14 23:47

そうですね。 その場合は、 if (form.reportValidity()) { form.submit(); } のようにすればエラー表示とエラーの場合は送信しないことが実現できます。
tokotaku

2022/06/14 23:56

ありがとうございます、うまくエラー表示が出せました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問