こんにちは!
SDP運営事務局の二木です。
今回はJavaScriptを使って、フォームを自在に表示非表示させる方法をご紹介します。
でも、安心してください!
複雑なことはありませんよ。
DEMOはこちら ※Q5を参照ください。
Vol.2 “その他”の項目に入力欄を追加する
Vol.3 マトリクス形式の回答欄を作成する
Vol.4 星型のレーティング形式の回答欄を作成する
★Vol.5 JavaScriptで項目の表示非表示を切り替える
Vol.6 タップで回答できるバー形式の回答欄を作成する
Vol.7 同意ボタンのチェックで送信ボタンを有効化させる
1. onclickイベントの設定
データベースの設定は、択一のセレクト(ラジオボタン)とテキストフィールドの2つ用意しました。
デフォルトは、下のようなブラウザ表示になります。
また、データベースの構築の際、下のキャプチャのようにセレクトフィールドのラベル設定を行いますが、数値1以上なら自由に設定することができます。ただ、value値などを紐付ける役割があるため、管理しやすいものをおすすめします。
inputタグ に onclick=”関数名();”を記入します!
01 02 03 04 05 06 07 08 09 10 | <dd class="data multi1"><ul class="radio cf"><li><label><input class="input" type="radio" name="●●●" value="1"onclick="entryChange1();" $●●●:r1$><span>はい</span></label></li><li><label><input class="input" type="radio" name="●●●" value="2"onclick="entryChange1();" $●●●:r2$><span>いいえ</span></label></li></ul><input type="hidden" value="" name="●●●"><span class="msg">$error:●●●$</span></dd> |
※●●●には、データベース構築の際、フィールド名ごとに設定した差替キーワードを記入します。また、「$●●●:r1$」の“:(コロン)”以降の数値は、「ラジオボタン」で設定された、「セレクトのIDナンバー」のことで、これは自動でHTMLに記載されます。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 | <dd class="data multi1"><ul class="radio cf"><li><label><input class="input" type="radio" name="●●●" value="1"onclick="entryChange1();" $●●●:r1$><span>はい</span></label></li><li><label><input class="input" type="radio" name="●●●" value="2"onclick="entryChange1();" $●●●:r2$><span>いいえ</span></label></li></ul><input type="hidden" value="" name="●●●"><span class="msg">$error:●●●$</span><!-- 表示切替 --><div id="firstBox"><p>【車種を教えてください】</p><input class="input $errorInputColor:●●●$" type="text"name="●●●" value="$●●●$" maxlength="128" ><br><span class="msg">$error:●●●$</span></div></dd> |
上記HTMLのように、Q5-1を内包するdivにidの設定をします。
このidは、Java Script設定の際、必要になります。
2. JavaScriptの設定
【※ 4/27 修正しました】
onclickイベントの設定を終えたら、Java Scriptを追記します。
- HTML内headの終了タグ直前にスクリプトを追記
コードの例: 0102030405060708091011<script type="text/javascript">functionentryChange1(){radio = document.getElementsByName('●●●')if(radio[0].checked) {document.getElementById('firstBox').style.display ="";}else{document.getElementById('firstBox').style.display ="none";}}</script> - HTML内bodyタグにonloadを追記
コードの例: 1<bodyclass="body"onload="entryChange1();">
【※ 4/27 以下追加】
“いいえ”を選択した場合、確認画面で車種入力欄を非表示にする方法
確認ページのソース内に、以下2点を追記します。
- class名を追記
- headの終了タグ直前にstyleを追記
コードの例: 010203040506070809101112<head><meta http-equiv="Content-Type"content="text/html; charset=shift_jis"><meta name="viewport"content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"><title></title><?php require'demo_question/css/style.php';?><style>/*Q5いいえを選択した場合、入力項目を非表示にさせる*/#SMP_STYLE dl.case2{display:none;}</style></head>
車種が表示されるdlタグにclass名+上図のように$(差替キーワード):id$を追記します。
デモでは、ID:1を“はい” ID:2を“いいえ”で設定していますので、上のソースのようにdl.case2にスタイル設定を行うことで非表示になります。
カスタマイズ後
“はい”を選択
“いいえ”を選択