現在Webページの入力フォームを作成しており、その中で「入社年月日」をHTMLのセレクトタグで選択する箇所があります。
常に現時点の年月を選択範囲に含めたいため、Javascriptで現在の日付を取得し、HTMLのselectタグを生成するコードを書いているのですが、思った通りにselectタグが生成されず悩んでおります。
スーパーリロードをした時だけ、正常にselectタグが生成されるので、原因はキャッシュ関連なのかなと思っていますが、それ以上の原因がどうしてもわからないため、どなたかお分かりになる方にアドバイスをいただけますと幸いです。。
※CSSフレームワークはMaterialize1.0.0を利用しています
HTML
1<div class="input-field"> 2 <select id='id_year' required> 3 <option value="" disabled selected>選択してください</option> 4 </select> 5 <label>入社した年</label> 6</div>
JavaScript
1// 年月の入力フォームで、常に現在時点を反映する機能 2 3$(window).on('load', function(){ 4 5 // 現在のページのパスを変数に取得する 6 var path = location.pathname 7 8 // パスの中に「review3」の文字列が含まれていた場合、以下を実行する 9 if(path.match('review3')){ 10 11 (function(){ 12 'use strict'; 13 14 // 現在時刻を変数化 15 var optionLoop, this_year, today; 16 today = new Date(); 17 this_year = today.getFullYear(); 18 19 // selectのoption生成のループ処理 20 optionLoop = function(start, end, id){ 21 var i, opt; 22 23 opt = null; 24 for (i = start; i >= end; i--){ 25 if (i === this_year + 1){ 26 opt += "<option value='' disabled selected>選択してください</option>" 27 } else { 28 opt += "<option value='" + i + "'>" + i + "</ooption>"; 29 } 30 } 31 return document.getElementById(id).innerHTML = opt; 32 }; 33 optionLoop(this_year + 1, 1950, 'id_year'); 34 })(); 35 36 } else { 37 // パスの中に「review3」の文字列が含まれていなかった場合、何もしない 38 ; 39 } 40});
通常のページ読み込み時(selectタグが生成されない画面)
お手数おかけしますが、アドバイスなどいただけますと幸いです。
何卒よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー