使用方法についてご不明な点がございましたらお気軽にご相談ください。

平日9時~17時半サスケサポートセンター

SAASKE TECHNOLOGYサスケ活用講座

システムを120%活用するための
便利ワザ・機能を紹介

Webフォームのカレンダーの制御方法

JavaScript

【さまざまな設定が可能です!】
【さまざまな設定が可能です!】

Webフォームのカレンダーで「土日に色を付けたい」や「選択できる日付を制御したい」といったお悩みはありませんか?
本日はWebフォームで利用しているカレンダーの制御方法をご紹介します。
※こちらはJavaScriptやWebの知識が必要です。
※またこの方法はサポート対象外とさせて頂きます。ご了承くださいませ。

カレンダーの制御 - 例

以下のコードを「Webフォーム > 公開ページ設定 > 入力ページの設定」の「ヘッダー情報」へ記載することで
  1. 選択可能な日付の最大値が「1ヶ月と2週間」
  2. 選択可能な日付の最小値が「2018/06/06」
  3. 週の始まりが「月曜日」
  4. 「土曜日が青色」かつ「日曜日は赤色&選択できない」
状態に設定することが可能です。
<script>
jQuery(function(a) {
  a.datepicker.regional.ja = {
    maxDate: "+1m +2w",
    minDate: "2018/06/06",
    firstDay: 1,
    beforeShowDay: function(d) {
      if (d.getDay() == 6) return [true, "sat"];
      if (d.getDay() == 0) return [false, "sun"];
      return [true, ""];
    },
  }, a.datepicker.setDefaults(a.datepicker.regional.ja)
});
</script>
<style>
.sun .ui-state-default {color: red}
.sat .ui-state-default {color: blue}
</style>

カレンダーの制御 - 解説

基本のテンプレートは下になります。
<script>
  jQuery(function(a) {
    a.datepicker.regional.ja = {
      /* ここに設定を記入します */
    }, a.datepicker.setDefaults(a.datepicker.regional.ja)
  });
</script>
ここから必要な設定を記載することで、上記のようになります。

コードの挿入場所は上記にも記載しましたが、「Webフォーム > 公開ページ設定 > 入力ページの設定」の「ヘッダー情報」になります。

カレンダーの制御 - 解説(設定項目)

maxDate

選択可能な日付の最大値を指定できます。
日付の指定は以下の記述が出来ます。
※1と3は日付の前後に「"」を必ず付けてください。
  1. Dateでの記述
    「"2018/06/01"」のように『年月日』で記述する方法です。
    開始日・終了日が決まっている場合はこちらをお使いください。
    maxDate: "2018/01/01",
    maxDate: "2018/12/31",
  2. Numberでの記述
    今日から数えて『何日後か』を記載する方法です。
    たとえば「2」と記入した場合は『今日から2日後』が、「-1」と記入した場合は『昨日』として設定されます。「0」の場合は『今日』になります。
    開始日・終了日が決まっていない場合はこちらをお使いください。
    maxDate: 14,
    maxDate: -5,
  3. Stringでの記述
    今日から数えて『y年、mヶ月、w週間、d日、後か』を記載する方法です。
    たとえば「"+1m +7d"」と記入した場合は『今日から1ヶ月および7日後』が、「"-2w"」と記入した場合は『今日から2週間前』と設定されます。「"0d"」の場合は『今日』になります。
    開始日・終了日が決まっていない場合はこちらをお使いください。
    maxDate: "+1y +3m",
    maxDate: "-3w -1d",

minDate

選択可能な日付の最小値を指定できます。
日付の指定はmaxDateと同じです。

firstDay

週の最初の日を設定します。
日曜日は「0」、月曜日は「1」などになります。
firstDay: 1,

beforeShowDay

上記までの設定とは異なり、配列を返すことで『特定の日付・特定の曜日』に対して『選択が可能かどうか』『CSSクラス名を追加』を行うことができます。
たとえば「[true, "sat"]」と返すことで『日付の選択が可能&satというCSSクラス名を追加』することができ、「[false, "sun"]」と返すことで『日付の選択が不可能&sunというCSSクラス名を追加』することができます。
以下の場合「土曜日の時は[true, "sat"]を、日曜日の時は[false, "sun"]を、それ以外は[true, ""]を返す」設定になります。
beforeShowDay: function(d) {
  if (d.getDay() == 6) return [true, "sat"];
  if (d.getDay() == 0) return [false, "sun"];
  return [true, ""];
},

「beforeShowDay」で各CSSクラス名を追加できますので、以下のようなCSSを記述することで土日に色を付けられるようになる仕組みです。
<style>
.sun .ui-state-default {color: red}
.sat .ui-state-default {color: blue}
</style>

その他の設定について

その他、細かい設定については以下のサイトに全て記載されております。
お手数ではございますが、こちらにてご確認くださいませ。

ぜひ、ご活用ください。

あわせて読みたい

    [(4)]|サスケ活用講座

    使用方法についてご不明な点がございましたらお気軽にご相談ください。

    平日9時~17時半サスケサポートセンター

    SAASKE TECHNOLOGYサスケ活用講座

    システムを120%活用するための
    便利ワザ・機能を紹介

    使用方法についてご不明な点がございましたら
    お気軽にご相談ください。

    平日9時~17時半サスケサポートセンター

    top