回答編集履歴

1

参考

2022/12/19 01:11

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -1 +1,29 @@
1
1
  requiredだけで十分だと思いますが、任意のエラー文書を表示したいなら適当なライブラリに頼るかinvalidで処理するかがベターで、alertはエラーが出ていることだけユーザーに返すほうがくどくなくてよいでしょう
2
+
3
+ # 参考
4
+ ```javascript
5
+ <style>
6
+ .err{
7
+ color:red;
8
+ }
9
+ </style>
10
+ <script>
11
+ document.addEventListener('click',e=>{
12
+ if(e.target.matches('[type=submit]')){
13
+ document.querySelectorAll('.err').forEach(x=>x.remove());
14
+ }
15
+ });
16
+ document.addEventListener('invalid',e=>{
17
+ const t=e.target;
18
+ const err=Object.assign(document.createElement('span'),{'className':'err','textContent':t.dataset.err??'エラー'});
19
+ t.parentNode.insertBefore(err,t.nextSibling);
20
+ e.preventDefault();
21
+ },true);
22
+ </script>
23
+ <form>
24
+ <input required data-err="必須項目"><br>
25
+ <input pattern="\d" data-err="数値のみ"><br>
26
+ <input required><br>
27
+ <input type="submit" value="send">
28
+ </form>
29
+ ```