0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【jQuery】.ui-datepicker-calendar は元テキストボックスの子クラスにならない

Last updated at Posted at 2024-11-02

忘備録です。何か間違ったことがあればすいません、教えてください。

結論はタイトルの通りです。説明します。

何をしようとしたか

datepickerで年月のみを入力するときにカレンダーが必要なかったので、これを非表示にしたい。というのが動機です。

何をしたか

CSSを以下のように記述することで、カレンダーを非表示にできました。

<style>
    .ui-datepicker-calendar {
        display: none !important; /* 年月用のカレンダーを非表示にする */
    }
</style>

しかし、これではすべてのdatepickerでカレンダーが非表示になってしまいます。日付をいれる普通のdatepickerも使いたいので、これでは具合が悪いです。

そこで、テキストボックスに .datepicker-month というクラスを指定し、以下のようなCSSを書いてみました。

<style>
    .datepicker-month .ui-datepicker-calendar {
        display: none !important; /* 年月用のカレンダーを非表示にする */
    }
</style>

こうすると、なにもおきなくなりました。

なぜそうなったか

.ui-datepicker-calendar が .datepicker-month の子になっていないから、です。
どういうことかというと、.datepicker-month は テキストボックスにつけられたクラスであって、そこから作られるカレンダーはその中に入っていないからです。
実際に、検証ツールでHTMLを実際に確認してみると、離れた場所に.ui-datepicker-calendar と .datepicker-month があります。

最後に

ちなみに、Web制作は初めてなのでこれに気づくまでに3時間程度かかりました。
検証ツールやCSSの勉強になったのでよかったです。

最終的にこの方法でいくのはあきらめました。「flatpickr」というものを使うことで解決しました。むしろキレイになったと思います。かるく調べた感じ、jQueryは簡単には年月のみにできなさそうでした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?