🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

3209閲覧

flatpickrで、disable(選択不可)してる特定の曜日で指定の曜日だけをenable(選択可能)にしたい場合

_cr

総合スコア22

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/11/18 03:14

flatpickrという日付け選択ライブラリを使っているのですが、

現時点でdisableしてる状態
・毎週水曜日
・特定の日付 例:disable: ['2019-07-19','2019-07-18','2019-07-16',]

やりたいことは、水曜日の一部だけはenable(選択可能)にしたいです。

やった事として、

javascript

1enable: ['2019-11-20','2020-01-01',],

を追加したら指定した上記の日付のみが有効化されてそれ以外が無効化になってしまって困ってる状態です。

javascript

1 function hook_flatpickr_script() { 2 $output = "<script> 3 jQuery(function($) { 4 function getMinDate(later){ 5 var today = new Date(); 6 today.setDate(today.getDate() + later); 7 var year = today.getFullYear(); 8 var month = today.getMonth() + 1; 9 var day = today.getDate(); 10 return yyyymmdd(year, month, day); 11 } 12 13 // 日付フォーマット 14 function yyyymmdd(y, m, d) { 15 var y0 = ('0000' + y).slice(-4); 16 var m0 = ('00' + m).slice(-2); 17 var d0 = ('00' + d).slice(-2); 18 return y0+'-'+m0+'-'+d0; 19 } 20 21 var minDate = getMinDate(3); 22 var config = { 23 minDate: minDate, 24 // enable: [ 25 // '2019-11-20', 26 // '2020-01-01', 27 // ], 28 disable: [ 29 '2019-07-19', 30 '2019-12-23', 31 '2019-12-24', 32 { 33 from: '2016-09-11', 34 to: '2016-10-10' 35 }, 36 function(currentDate) { 37 return (currentDate.getDay() === 3); 38 } 39 ], 40 locale: { 41 firstDayOfWeek: 0, 42 weekdays: { 43 shorthand: ['日', '月', '火', '水', '木', '金', '土'], 44 }, 45 months: { 46 longhand: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'], 47 }, 48 }, 49 }; 50 $('.flatpickr').flatpickr(config); 51 }) 52 </script> 53 <style> 54 .flatpickr-day.disabled, .flatpickr-day.disabled:hover { 55 color: rgba(255, 0, 0, 0.5); 56 } 57 </style>"; 58 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

config をオブジェクトリテラルで一気に書かずに javascript で動的に構築することもできそうですね。

例えば、こんな感じです

javascript

1var config = {}; 2 3// ここを動的に生成しちゃう 4config.disable = [ 5 /* omitted */ 6] 7config.disable.push({ 8 from: '2016-09-11', 9 to: '2016-10-10' 10}) 11config.disable.push(function(currentDate){ 12 /* omitted */ 13}) 14 15config.locale = { 16 /* omitted */ 17} 18 19$('.flatpickr').flatpickr(config);

こちらのご質問 にあるような時間計算の方法を応用して、disabled に含める値を動的に生成しちゃうのはどうでしょうか?

投稿2019/11/20 06:04

AkitoshiManabe

総合スコア5434

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_cr

2019/11/21 01:25

ありがとうございます!! 参考になりました!
_cr

2019/11/21 01:25

ありがとうございます! とても参考になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問