/** * Get the URL parameter value * * @param name {string} パラメータのキー文字列 * @return url {url} 対象のURL文字列(任意) */ function getParam(name, url) { if (!url) url = window.location.href; name = name.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url); if (!results) return null; if (!results[2]) return ''; return decodeURIComponent(results[2].replace(/\+/g, " ")); } $(function () { // ページロードイベントハンドラ $(document).ready(function(){ var pagenum = getParam("q") == null ? 0 : Number(getParam("q")); var sessionAns = null; // 初回表示の場合はセッションをクリアする // if(pagenum == 0){ sessionAns = Array(DATA.Datas.length).fill(""); sessionStorage.removeItem('ANSWERS'); sessionStorage.setItem('ANSWERS',sessionAns); }else{ sessionAns = sessionStorage.getItem("ANSWERS").split(","); } // 値を書き換える // $("#title").text(DATA["Title"]); $("#description").text(DATA["Datas"][pagenum]["Description"]); $("#ansA").text(DATA["Datas"][pagenum]["AnsA"]["Text"]); $("#ansA").val(DATA["Datas"][pagenum]["AnsA"]["Value"]); $("#ansB").text(DATA["Datas"][pagenum]["AnsB"]["Text"]); $("#ansB").val(DATA["Datas"][pagenum]["AnsB"]["Value"]); $("#ansC").text(DATA["Datas"][pagenum]["AnsC"]["Text"]); $("#ansC").val(DATA["Datas"][pagenum]["AnsC"]["Value"]); $("#ansD").text(DATA["Datas"][pagenum]["AnsD"]["Text"]); $("#ansD").val(DATA["Datas"][pagenum]["AnsD"]["Value"]); // ボタン制御 // if(pagenum == 0){ // 最初の問題の場合は戻るボタンを非表示にする // $(".back").hide(); $(".next").hide(); $(".result").hide(); }else if(pagenum == DATA.Datas.length-1){ // 最後の問題の場合は結果表示ボタンを表示 // $(".back").show(); $(".next").hide(); $(".result").hide(); }else{ // 結果表示ボタンを非表示にする // $(".back").show(); $(".next").hide(); $(".result").hide(); } }); //選択肢ボタンを押下した時のイベントハンドラ $(".btn").on("click", function () { var pagenum = getParam("q") == null ? 0 : Number(getParam("q")); // 指定なしを押下された際は他の選択肢を選択できなくする if($(this).hasClass("no_sel") || !$(".no_sel").hasClass("selected")){ $(this).toggleClass("selected"); }    // 該当なしをチェックされたら全部リセット // if($(this).hasClass("no_sel")){ var btns = document.getElementsByClassName("btn sel"); for(var i=0;i < btns.length;i++){ btns[i].classList.remove("selected"); } } // 選択肢がない場合は次へ進めなくする // checked = false; var elements = document.getElementsByClassName("btn"); for(i = 0; i < elements.length;i++){ if(elements[i].classList.contains("selected")){ checked = true; break; } } if(!checked){ $(".next").hide(); $(".result").hide(); }else{ if(pagenum == DATA.Datas.length-1){ // 最後の問題の場合は結果表示ボタンを表示 // $(".result").show(); }else{ $(".next").show(); } } }); // 戻るボタンを押下したときのイベントハンドラ $(".back").on("click", function () { var pagenum = getParam("q") == null ? 0 : Number(getParam("q")); location.href = location.pathname + ("?q=" + String(pagenum-1)) }); // 次へボタンを押下したときのイベントハンドラ $(".next").on("click", function () { var pagenum = getParam("q") == null ? 0 : Number(getParam("q")); var selectedValue = []; var elements = document.getElementsByClassName("btn selected"); for(var i=0; i < elements.length;i++){ if(elements[i].value == "Z"){ selectedValue = []; break; } selectedValue.push(elements[i].value); } // 回答をセッションに格納 // var sessionAns = sessionStorage.getItem("ANSWERS").split(","); sessionAns[pagenum] = selectedValue.join("-"); sessionStorage.setItem('ANSWERS',sessionAns); // ページ遷移 // location.href = location.pathname + ("?q=" + String(pagenum+1)) }); // 結果表示ボタンを押下したときのイベントハンドラ $(".result").on("click", function () { var pagenum = getParam("q") == null ? 0 : Number(getParam("q")); var selectedValue = []; var elements = document.getElementsByClassName("btn selected"); for(var i=0; i < elements.length;i++){ if(elements[i].value == "Z"){ selectedValue = []; break; } selectedValue.push(elements[i].value); } // 回答をセッションに格納 // var sessionAns = sessionStorage.getItem("ANSWERS").split(","); sessionAns[pagenum] = selectedValue.join("-"); sessionStorage.setItem('ANSWERS',sessionAns); // ページ遷移 // location.href = "./result.html" }); });