jQuery UIでカレンダーピッカー(Datepicker)の利用方法
フォーム等で日付を入力する際にカレンダーピッカー機能を実装することがある。その際は大体jQueryプラグインのDateTimePickerというものを利用していた。ただ、今回は機能的な問題でjQuery UIのDatepickerを利用することになったので使い方をメモ。
目次
リファレンス
https://js.studio-kingdom.com/jqueryui/widgets/datepicker
CDN呼び出し
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script> <script src="https://rawgit.com/jquery/jquery-ui/master/ui/i18n/datepicker-ja.js"></script> <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
各種ソース&サンプル
オプション無しの基本的な呼び出し方
$("#date").datepicker({});
https://taitan916.info/sample/jquery-ui-datepicker/
年月日のフォーマットを指定の上で、本日~30日後まで選択可能
$("#date").datepicker({ minDate: 0, //最小は本日まで maxDate: 30, //最大は30日後まで dateFormat: 'yy/mm/dd', //年月日のフォーマット });
minDateやmaxDateは日付指定も可能。
https://taitan916.info/sample/jquery-ui-datepicker/index2.php
特定の日にClass付与&選択不可
//特定の日指定 var sample_holiday = ['2021-06-23', '2021-07-01'] $("#date").datepicker({ minDate: 0, //最小は本日まで maxDate: 30, //最大は30日後まで dateFormat: 'yy-mm-dd', //年月日のフォーマット beforeShowDay: function(date) { //特定の日にClass付与&選択不可 for (var i = 0; i < sample_holiday.length; i++) { var holiday = new Date(Date.parse(sample_holiday[i])); if (holiday.getYear() == date.getYear() && holiday.getMonth() == date.getMonth() && holiday.getDate() == date.getDate()) { return [false, 'sample_holiday', null]; } } return [true, 'day-weekday', null]; }, });
特定の日付にClassを付与するオプションというのがjQueryプラグインのDateTimePickerには無かった為、今回jQuery UIを利用している。
[false, 'sample_holiday', null]
上記の第1引数部分でカレンダーの選択可否を設定、第2引数でClass名を指定できる。
https://taitan916.info/sample/jquery-ui-datepicker/index3.php
所感
jQueryプラグインのDateTimePickerで困った時にGoogle検索するとjQuery UI版の情報がヒットすることが多い。これを機にjQuery UI版にのりかえるのもありかと思った。
関連記事
-
-
サイトにHTMLエディタ(WYSIWYG)を導入する方法
シンプルで導入が簡単、且つ日本語化されているウィジウィグを探しており、良さそうな ...
-
-
Ajaxで画像のアップロード(jquery.upload)
業務中に画像の選択後、アップロードボタンを押して画像のアップ、 その後フォームの ...
-
-
jQueryで後から追加された要素にイベントを設定
jQueryで.html()等を使って追加した要素に対してイベントを設定したかっ ...
-
-
無料でジオコーディング(住所→経度緯度)を行う
GoogleMapAPIでジオコーディングをするには、支払い情報を登録したアカウ ...
-
-
submit関連のjQuery
<?php //jQueryでのsubmit,エンターキーでのsubmit ...
-
-
javascriptのfor文で負荷軽減
javascriptで配列の数だけループをまわす際、 for (i=0; i&l ...
-
-
reCAPTCHA v2でAjaxは使わずにチェック状況を確認する方法
reCAPTCHA v2を実装する案件があり以前の記事を参考に組み込んでみたもの ...
-
-
Ajaxの負荷対策
Ajaxを使ってボタンを押した際に表示を切り替える処理。 都度Ajaxを使ってた ...
-
-
テキストエリアを自動でリサイズ
改行するだけで勝手にリサイズしてくれるので、 ユーザー用でも管理用でも使えそう。 ...
-
-
jQueryプラグインでクリップボードにコピーする方法(clipboard.js)
ページ上のボタンをクリックすることで特定の文章をクリップボードにコピーしたかった ...