<目次>
(1) JavaScriptの必須チェックのサンプルプログラム
(1-1) 構文
(1-2) サンプルプログラム
(1) JavaScriptの必須チェックのサンプルプログラム
「必須チェック」は必須の項目が入力されているか?のチェックし、未入力の場合はエラーとするチェックです。今回はクライアント側(JavaScript)で必須チェックを実装した例をご紹介します。
(1-1) 構文
(構文)
//# (1) 必須入力チェック //# (1-1) フォームの情報を取得 var form = document.getElementById("testform"); //# エラーメッセージ格納用の変数 var errmsg = ""; //# (1-2) フォームの各要素をループ for(var i=0; i < form.elements.length; i++){ //# (1-2-1) 必須項目かどうか?のチェック if(form.elements[i].hasAttribute("required")){ //# (1-2-1-1) 必須項目の値が空白なら if(form.elements[i].value.trim()==""){ //# (1-2-1-1-1) エラーメッセージに追記 errmsg = errmsg + "必須項目「" + getLabel(form.elements[i]) + "」が入力されていません\n"; } } }
・(1-2) フォームの各要素をループ
・(1-2-1) 必須項目かどうか?のチェック
つまり、入力必須としたい<input>の項目に対して「required」属性を付与します。
<input type="text" id="firstnm" name="firstname" required>
(1-2) サンプルプログラム
(図121)
●入力画面のJSP
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="./css/IT0991_JspTextboxAlign.css"> <title>Validation Check Sample</title> </head> <body> <script type='text/javascript' language='javascript'> function TestValidation(){ //############################################ //# (1) 必須入力チェック //############################################ //# (1-1) フォームの情報を取得 var form = document.getElementById("testform"); //# エラーメッセージ格納用の変数 var errmsg = ""; //# (1-2) フォームの各要素をループ for(var i=0; i < form.elements.length; i++){ //# (1-2-1) 必須項目かどうか?のチェック if(form.elements[i].hasAttribute("required")){ //# (1-2-1-1) 必須項目の値が空白なら if(form.elements[i].value.trim()==""){ //# (1-2-1-1-1) エラーメッセージに追記 errmsg = errmsg + "必須項目「" + getLabel(form.elements[i]) + "」が入力されていません\n"; } } } //# (1-3) エラーなし→次画面に遷移 if(errmsg == ""){ form.submit(); } //# (1-4) エラーあり→警告を出力 else{ window.alert(errmsg); } //# (補助) 指定した要素のラベル名を取得 function getLabel(elem){ return document.querySelector('label[for="'+elem.id+'"]').textContent; } } </script> <form method="POST" action="ITxxxx_ValidationCheckSample2.jsp" id="testform" > <label for="firstnm">氏</label>:<input type="text" id="firstnm" name="firstname" required><br /> <label for="lastnm">名</label>:<input type="text" id="lastnm" name="lastname" required><br /> <label for="telephone">電話番号</label>:<input type="text" id="telephone" name="tel" ><br /> <label for="age">年齢</label>:<input type="text" id="age" name="age" ><br /> <label>送信:</label><input type="button" onclick="TestValidation()" value="送信"/> </form> </body> </html>
●出力画面のJSP(おまけ)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="./css/IT0991_JspTextboxAlign.css"> <title>Validation Check Sample</title> </head> <body> </br> <label>氏:</label><input type="text" disabled value="<%=request.getParameter("firstname")%>"><br /> <label>名:</label><input type="text" disabled value="<%=request.getParameter("lastname")%>"><br /> <label>電話番号:</label><input type="text" disabled value="<%=request.getParameter("tel")%>"><br /> <label>年齢:</label><input type="text" disabled value="<%=request.getParameter("age")%>"><br /> <br /> <a href="ITxxxx_ValidationCheckSample.jsp">>前画面に戻る</a> </body> </html>