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

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

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

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Q&A

解決済

1回答

15462閲覧

jsp:入力フォームの未入力チェックがうまくできません

manmos

総合スコア55

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

0グッド

1クリップ

投稿2016/05/21 15:51

質問です。
jspの入力フォームの未入力チェックの部分を作成しているのですがうまくいかないです。
テキストボックスの部分は正しくチェックしているようなのですがラジオボタンやプルダウンメニューの部分だと選択してもしていなくてもエラーメッセージを表示してしまいます。
以下、jspのコードです。どこが間違っているでしょうか?

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="Content-Type" content="width=device-width, initial-scale=1"> <script type="text/javascript"> function check(){ var flag = 0; if(document.form1.name.value == ""){ // 「氏名」の入力をチェック flag = 1; } else if(document.form1.nameHiragana.value == ""){ // 「氏名(ひらがな)」の入力をチェック flag = 1; } else if(document.form1.birthday.value == ""){ // 「生年月日」の入力をチェック flag = 1; } else if(document.form1.sex.value == null){ // 「性別」の入力をチェック flag = 1; } else if(document.form1.mailAddress.value == ""){ // 「メールアドレス」の入力をチェック flag = 1; } else if(document.form1.telephoneNumber.value == ""){ // 「電話番号」の入力をチェック flag = 1; } else if(document.form1.companyInfoId.value == null){ // 「所属会社」の入力をチェック flag = 1; } else if(document.form1.businessManager.value == ""){ // 「担当管理営業」の入力をチェック flag = 1; } else if(document.form1.department.value == null){ // 「事業部」の入力をチェック flag = 1; } else if(document.form1.commissioningStatus.value == null){ // 「稼働状況」の入力をチェック flag = 1; } else if(document.form1.enterDate.value == ""){ // 「入社日」の入力をチェック flag = 1; } else if(document.form1.retireDate.value == ""){ // 「退職日」の入力をチェック flag = 1; } else if(document.form1.status.value == null){ // 「ステータス」の入力をチェック flag = 1; } // 設定終了 if(flag){ window.alert('必須項目に未入力がありました'); // 入力漏れがあれば警告ダイアログを表示 return false; // 送信を中止 } else{ return true; // 送信を実行 } } </script> <title>社員詳細</title> </head> <body> <h1>社員詳細</h1> <form action="./Detail" method="post" name="form1" onSubmit="return check()"> <input type="hidden" name="employeeId" value="${userinfo.employeeId}"> 氏名<input type="text" name="name" size="20" maxlength="20" value="${userinfo.name}"><br> 氏名(ひらがな)<input type="text" name="nameHiragana" size="20" maxlength="20" value="${userinfo.nameHiragana}"><br> 生年月日<input type="text" name="birthday" size="10" maxlength="10" value="${userinfo.birthday}"><br> 性別<input type="radio" name="sex" <c:if test="${userinfo.sex == '0'}">checked</c:if> value="0" /> 男 <input type="radio" name="sex" <c:if test="${userinfo.sex == '1'}">checked</c:if> value="1" /> 女<br> メールアドレス<input type="text" name="mailAddress" size="50" maxlength="50" value="${userinfo.mailAddress}"><br> 電話番号<input type="text" name="telephoneNumber" size="13" maxlength="13" value="${userinfo.telephoneNumber}"><br> 所属会社<select name="companyInfoId"> <c:forEach var="tmp" items="${abbreviationList}"> <option value="${tmp.companyId}" <c:if test="${tmp.companyId == userinfo.companyId}"> selected</c:if>> ${tmp.abbreviation}</option> </c:forEach> </select><br> 担当管理営業<input type="text" name="businessManager" size="20" maxlength="20" value="${userinfo.businessManeger}"><br> 事業部<select name="department"> <option <c:if test="${userinfo.department == '0'}"> selected</c:if> value="0">開発</option> <option <c:if test="${userinfo.department == '1'}"> selected</c:if> value="1">NW</option> <option <c:if test="${userinfo.department == '2'}"> selected</c:if> value="2">検証</option> <option <c:if test="${userinfo.department == '3'}"> selected</c:if> value="3">オフィス</option> <option <c:if test="${userinfo.department == '4'}"> selected</c:if> value="4">管理</option> </select><br> 稼働状況<input type="radio" name="commissioningStatus" <c:if test="${userinfo.commissioningStatus == '0'}">checked</c:if> value="0" /> 稼働 <input type="radio" name="commissioningStatus" <c:if test="${userinfo.commissioningStatus == '1'}">checked</c:if> value="1" /> 未稼働<br> 入社日<input type="text" name="enterDate" size="10" maxlength="10" value="${userinfo.enterDate}"><br> 退職日<input type="text" name="retireDate" size="10" maxlength="10" value="${userinfo.retireDate}"><br> ステータス<select name="status"> <option <c:if test="${userinfo.status == '0'}"> selected</c:if> value="0">在職</option> <option <c:if test="${userinfo.status == '1'}"> selected</c:if> value="1">退職</option> <option <c:if test="${userinfo.status == '2'}"> selected</c:if> value="2">入社待</option> <option <c:if test="${userinfo.status == '3'}"> selected</c:if> value="3">入社取り消し</option> </select><br> <input type="submit" value="登録" /> </form> </body> </html>

以上になります。
詳しい方いらっしゃいましたらご教授お願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

JavaScriptの問題ですね。
気付いてらっしゃるようにテキストボックス以外の
チェック方法はいまのままではNGです。

  • ラジオボタンの場合

JavaScript

1var f = 1; 2var i; 3for(i=0; i<document.form1.hoge.length; i++) { 4 if(document.form1.hoge[i].checked){ 5 flag = 0; 6 break; 7 } 8} 9if (f==1) { 10 // エラー処理 11}
  • セレクトボックスの場合

JavaScript

1if (document.form1.hoge.options[document.form1.hoge.selectedIndex].value == "") { 2 // エラー処理 3}
  • チェックボックスの場合

JavaScript

1// 「どれかチェックされていること」という条件なら 2if (document.form1.hoge1.checked==false && 3 document.form1.hoge2.checked==false && 4 document.form1.hoge3.checked==false) { 5 // エラー処理 6}

投稿2016/05/21 17:12

takasima20

総合スコア7458

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

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

manmos

2016/05/22 06:33

ラジオボタンのエラーチェックができないです・・・ 性別の部分から書いているんですが下記の書き方であっているでしょうか? function check(){ var f = 1; var i; for(i=0; i<document.form1.sex.length; i++) { if(document.form1.sex[i].checked){ flag = 0; break; } } if (f==1) { // エラー処理 flag = 1; } // 設定終了 if(flag){ window.alert('必須項目に未入力がありました'); // 入力漏れがあれば警告ダイアログを表示 return false; // 送信を中止 } else{ return true; // 送信を実行 } }
takasima20

2016/05/22 06:49

ループの中で設定するのは flag = 0; ではなく f = 0; ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問