formの値を取得し、バリデーションのチェックの処理を書いてみたのですが、うまくいかない部分があります。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>お問合せ画面</h1> <h2>お問合せ内容を入力してください</h2> <form method="post" action="#" name="input_form"> <p>(必須)名前<input type="text" name="name"></p> <p>(必須)年齢<input type="text" size="5" name="age">歳</p> <p>好きな色 <input type="checkbox" name="color" value="red">赤 <input type="checkbox" name="color" value="green">緑 <input type="checkbox" name="color" value="blue">青 </p> <input type="submit" id="btn" value="送信"> </form> <script> document.addEventListener('DOMContentLoaded',function(){ document.getElementById('btn').addEventListener('submit',e => { // if(user_name) e.preventDefault(); const form = document.forms.input_form; let user_name = form.name.value; console.log(user_name); if(user_name == ''){ console.log('名前が入力されていません'); } }); }); </script> </body> </html>
上記コードにおいて、名前のテキストエリア内には何も入力せず、送信ボタンを押したにも関わらず、「console.log('名前が入力されていません');」ここの部分がコンソールにて、表示されません。
何故console.logの中身が表示されないのでしょうか?
「名前が入力されていません」が表示されるのは、名前のテキストエリア内に何も入力されていない場合に、送信ボタンが押されたときと思われますので、ご質問にある、「名前のテキストエリア内に文字を入力し、送信ボタンを押したにも関わらず、「console.log('名前が入力されていません');」ここの部分がコンソールにて、表示されません。」というのは意図通りなのではないでしょうか?
ご指摘ありがとうございます。
すみません。質問文に誤りがありました。実際は、「名前のテキストエリア内の文字を入力せず、送信ボタンを押した場合」についてでした。
質問の方、修正させて頂きました。
修正ありがとうございます。ついては、問題の原因と修正案を回答しましたので、ご確認ください。
回答3件
あなたの回答
tips
プレビュー