打ち合わせ希望日をカレンダーで選択してもらってフォームで予約を入れてもらう。 このような制御が必要になった。 当初<input type="date">で良いかな? と思ったが、ユーザがPC:スマホで7対3位で、まだまだPCが有利なので、 datepickerを使うことにした。 その際に、 ・土日は選択させない。 ・4営業日以降しか選択できない。 という条件を付けたい。 土日は選択させない事は先人の知恵で問題なく解決。 問題は、4営業日以降の縛り datepickerの変数だけでは処理できなかったので、 起算点を今日にして、今日の曜日を取得し、 datepikcerのオプション minDate で制御した。 以下ソース。 <HEAD> <META HTTP-EQUIV=Content-Type CONTENT=text/html;CHARSET=UTF-8> <TITLE>アポどり用フォーム</TITLE> <!-- jQuery--> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <!-- jQuery-UI --> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script> <!-- jQuery-UI-datepicker --> <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/i18n/jquery.ui.datepicker-ja.min.js\"></script> <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/redmond/jquery-ui.css\" > <script> <!-- 今日の曜日を抽出--> var dateObj = new Date() ; var weekDayList = [0,1,2,3,4,5,6] ; var todayWeekDay = weekDayList[ dateObj.getDay() ] ; <!--datepicker 定義--> $(function(){ // Datepicker の呼び出し $( "#datepicker" ).datepicker({onClose: function(dateText, inst) { //プラン番号の取得 //日付オブジェクトの作成 var date = new Date(dateText); var weekDay = parseInt(date.getDay()); var check = false; if(weekDay > 0 && weekDay < 6){ check = true; } if(!check){ alert("この日は選択できません"); $( "#datepicker" ).val(''); } }}); //判別4(木曜)、5(金曜)は+6day それ以外は+4dayでOK if(todayWeekDay == 4 || todayWeekDay == 5){ $( "#datepicker" ).datepicker( "option", 'minDate', "+6d" ); $( "#datepicker" ).datepicker( "option", 'maxDate', "2m" ); } else{ $( "#datepicker" ).datepicker( "option", 'minDate', "+4d" ); $( "#datepicker" ).datepicker( "option", 'maxDate', "2m" ); } } ); </script> </HEAD> <BODY> <FORM ACTION="mail.php" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded" > <input type="text" name="date1" class="form_text-small\" id="datepicker" readonly="readonly"> </FORM> こんな感じで実装すればよい。 $( "#datepicker" ).datepicker( "option", 'minDate', "+4d" ); $( "#datepicker" ).datepicker( "option", 'maxDate', "2m" ); 肝はこの部分。
2016/06/27
javascipt datePicker 営業日の制御
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿