入力欄に数字が入力されたらアラート表示したいんですが、表示されません。name1はinputのIDです
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="input1.css"> <script type="text/javascript" src="input1.js" charset="shift_jis"></script> </head> <h2>1.基本情報入力</h2> <main> <table> <tr> <th>名前(姓)</th> <td><input id="name1" ></td> </tr> <tr> <th>名前(名)</th> <td><input id="name2" ></td> </tr> <tr> <th>年齢</th> <td><select name="age" id="age"> <option value="0">0</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option></th><th>歳</td> </tr>function option(){ const name1 = document.getElementById("name1").value; const name2 = document.getElementById("name2").value; const age = document.getElementById("age").value; const add1 = document.getElementById("add1").value; const add2 = document.getElementById("add2").value; const sumika1 = document.getElementById("sumika1").value; const sumika2 = document.getElementById("sumika2").value; //未入力チェック if(name1.length === 0){ alert("名前(姓)は必須入力です。"); return; }else if(name2.length === 0){ alert("名前(名)は必須入力です。"); return; }else if(age.length ==="noselect"){ alert("年齢は必須選択です。"); return; }else if(add1.length === 0){ alert("アドレスは必須入力です"); return; }else if(add2.length === 0){ alert("アドレス(確認用)は必須入力です。"); return; }else if(sumika1.length === 0){ alert("住所は必須入力です。"); return; }else if(sumika2.length === 0){ alert("住所(確認用)は必須入力です。"); return; } //入力値チェック if(name1.length > 20 || name2.length > 20){ alert("名前は20字以内で入力してください。"); return; }else if(!add1.match(/^[A-Za-z0-9]{1}[A-Za-z0-9_.-]*@{1}[A-Za-z0-9_.-]{1,}.[A-Za-z0-9]{1,}$/)){ alert("メールアドレスの形式が違います。"); return; }else if(name1.match(/[0-9]/) || name2.match(/[0-9]/)){ alert("名前に数字は使用できません。"); return; } } ```ここに言語を入力
</tr> <tr> <th>メールアドレス<br>(確認用)</th> <td ><input id="add2" ></td> </tr> <tr> <th>住所1</th> <td><input id="sumika1" ></td> </tr> <tr> <th>住所2</th> <td><input id="sumika2" ></td> </tr> <tr> <th></th> <th> <input type="submit" value="次へ" class="btn" onclick="option()"></th> </tr> </table> </main> </container> </html><tr> <th>メールアドレス</th> <td><input id="add1" ></td>
念のため確認ですが、名前が
0
ならアラートを出す、
0
の時はアラートを出さない、
ということでいいんですよね?
名前に0~9の数字が使われたらアラート出す感じです
全角と半角の考慮を問われてると思います
m.ts10806さんのおっしゃるとおりで、「名前入力欄に1を入力してもアラートが表示されないです。検証してみたがエラー表示はありませんでした」とコメントされていますが、これは全角ではないですか? 正規表現は半角数字をチェックしているように見えます。
なるほど。その線は高そうですね。
m.ts10806さん流石です。この発想はなかったです。
確認したところ半角ではアラート表示されました。ありがとうございました。
いえいえ。Lhankor_Mhyさんが分かりやすいよう改行してくれてるので気づけました。
仕様として全角はどうするか?は決めないといけないと思います。
回答2件
あなたの回答
tips
プレビュー