前提・実現したいこと
Java、Oracle、HTML/CSS、サーブレット/JSP、JavaScriptを勉強中です。
現在、課題で社員管理システムを作っています。
新しく社員情報を登録する際に、登録確認画面に遷移する前に入力チェックを行いたいのですが、ここで躓いています。
*入力エラーがある場合→確認画面へ遷移せずエラーメッセージを表示させる
*入力エラーがない場合→確認画面へ遷移する
1ヶ月程前に勉強をはじめたばかりで知識不足ですが、ご教示お願いします。
発生している問題・エラーメッセージ
JavaScript(jQuery)を使用して入力チェックを行っています。
エラーメッセージは出力されるようになりましたが、登録ボタンを押しても次のサーブレットに遷移しなくなってしまいました。
該当のソースコード
jsp
1<form action="<%=request.getContextPath()%>/RegistCheck" 2 method="post" onsubmit="return input_check();" class="regist_input"> 3 4 <table class="emp_form"> 5 <tr> 6 <th class="label">パスワード:</th> 7 <td class="input"><input type="password" id="emp_pass" 8 name="emp_pass"><br /><span id="emp_pass_error" 9 class="error_m"></span></td> 10 </tr> 11 <tr> 12 <th class="label">社員名:</th> 13 <td class="input"><input type="text" id="emp_name" 14 name="emp_name"><br /><span id="emp_name_error" 15 class="error_m"></span></td> 16 </tr> 17 <tr> 18 <th class="label">性別:</th> 19 <td class="input"><label><input type="radio" 20 name="gender" value="1" checked="checked" />男性</label> <label><input 21 type="radio" name="gender" value="2" />女性</label></td> 22 </tr> 23 <tr> 24 <th class="label">住所:</th> 25 <td class="input"><input type="text" id="address" 26 name="address"><br /><span id="address_error" class="error_m"></span> 27 </td> 28 </tr> 29 <tr> 30 <th class="label">生年月日:</th> 31 <td class="input"><input type="date" id="birthday" 32 name="birthday"> 33 <br /><span id="birthday_error" 34 class="error_m"></span></td> 35 </tr> 36 <tr> 37 <th class="label">権限:</th> 38 <td class="input"><label><input type="radio" 39 name="authority" value="1" checked="checked" />一般</label> <label><input 40 type="radio" name="authority" value="2" />管理者</label></td> 41 </tr> 42 <tr> 43 <th class="label">部署名:</th> 44 <td class="input"><select name="dept_id"> 45 <option value="1">営業部</option> 46 <option value="2">経理部</option> 47 <option value="3">総務部</option> 48 </select></td> 49 </tr> 50 </table> 51 <input type="submit" value="登録"/> 52 </form>
JavaScript(jQuery)
1// 入力内容チェックのための関数 2 function input_check(){ 3 var result = true; 4 5 // エラー用装飾のためのクラスリセット 6 $('#emp_pass').removeClass("inp_error"); 7 $('#emp_name').removeClass("inp_error"); 8 $('#address').removeClass("inp_error"); 9 $('#birthday').removeClass("inp_error"); 10 11 12 // 入力エラー文をリセット 13 $("#emp_pass_error").empty(); 14 $("#emp_name_error").empty(); 15 $("#address_error").empty(); 16 $("#birthday_error").empty(); 17 18 // 入力内容セット 19 var emp_pass = $("#emp_pass").val(); 20 var emp_name = $("#emp_name").val(); 21 var address = $("#address").val(); 22 var birthday = $("#birthday").val(); 23 24 // 入力内容チェック 25 26 // パスワード 27 if(emp_pass == ""){ 28 $("#emp_pass_error").html("* パスワードを入力してください。"); 29 $("#emp_pass").addClass("inp_error"); 30 result = false; 31 }else if(emp_pass.length > 16){ 32 $("#emp_pass_error").html("* パスワードは16文字以内で入力してください。"); 33 $("#emp_pass").addClass("inp_error"); 34 result = false; 35 } 36 // 社員名 37 if(emp_name == ""){ 38 $("#emp_name_error").html("* 社員名を入力してください。"); 39 $("#emp_name").addClass("inp_error"); 40 result = false; 41 }else if(emp_name.length > 30){ 42 $("#emp_name_error").html("* 社員名は30文字以内で入力してください。"); 43 $("#emp_name").addClass("inp_error"); 44 result = false; 45 } 46 47 // 住所 48 if(address == ""){ 49 $("#address_error").html("* 住所を入力してください。"); 50 $("#address").addClass("inp_error"); 51 result = false; 52 }else if(address.length > 60){ 53 $("#address_error").html("* 住所は60文字以内で入力してください。"); 54 $("#address").addClass("inp_error"); 55 result = false; 56 } 57 // 生年月日 58 if(birthday == ""){ 59 $("#birthday_error").html("* 生年月日を入力してください。"); 60 $("#birthday").addClass("inp_error"); 61 result = false; 62 } 63 return false; 64}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/25 09:15