6

同じページに複数の日付ピッカーがあり、月と年のみを表示するために1つ必要ですが、他の日付ピッカーは日を含む完全なカレンダーを表示する必要があります。孤独なデートピッカーから日を隠すために、私は次のようなことをすることができることを知っています:

<style>
 .ui-datepicker-calendar {
   display: none;
 }
</style>

しかし、それはすべてのカレンダーから日付を隠します。他の日付ピッカーがカレンダービューを保持していることを確認するにはどうすればよいですか?

編集 CSSをネストしようとしましたが、まだ何かが足りません。HTMLの部分については、大まかに次のようになります。

<div id="monthOnly"><input type="text" class="monthly-picker" name="mdate"></div>

そしてJSコード$('.monthly-picker').datepicker();

それでも、次のようなことをします

<style>
#monthOnly .ui-datepicker-calendar {
   display: none;
 }
</style>

望ましい結果が得られません。

4

3 に答える 3

6

コンテナ要素の使用IDを指定します。

<style>
 #monthOnly .ui-datepicker-calendar {
   display: none;
 }
</style>

編集: http : //jsfiddle.net/h8DWR/は、datepickerの特異性に対処するためのソリューションです。アイデアは、特定の日付ピッカーが選択されたときにスタイル要素を使用してスタイルを追加し、それが閉じられたときにそれを削除することです。

于 2012-04-27T14:47:25.483 に答える
2

私は少し違うことをしました...

HTML

<label for="startDate">Date :</label>
<input name="startDate" id="startDate" class="date-picker" />

CSS

.hide-calendar .ui-datepicker-calendar {
    display: none;
}

jQuery

$(function() {
    $('.date-picker').datepicker( {
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'MM yy',
        yearRange: '1980:' + new Date().getFullYear(),
        beforeShow: function(el, dp) { 
            $('#ui-datepicker-div').addClass('hide-calendar');
        },
        onClose: function(dateText, inst) { 
            $('#ui-datepicker-div').removeClass('hide-calendar');
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $(this).datepicker('setDate', new Date(year, month, 1));
        }
    });
});

フィドル

于 2014-03-24T19:45:27.807 に答える
1

少し違う方法

$('.year').datepicker({
  changeMonth: true,
  changeYear: true,
  showButtonPanel: true,
  dateFormat: 'MM yy',
  beforeShow: function(input) {
    $(this).datepicker('widget').addClass('hide-calendar');
  },
  onClose: function(input, inst) {
    $(this).datepicker('widget').removeClass('hide-calendar');
    $(this).datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, 1));
  }
});

$('.datepicker').datepicker({
  changeMonth: true,
  changeYear: true,
  showButtonPanel: true,
  dateFormat: 'MM yy dd',
  onClose: function(input, inst) {
    $(this).datepicker('setDate', new Date(inst.selectedYear, inst.selectedMonth, inst.selectedDay));
  }
});
.hide-calendar .ui-datepicker-calendar{
  display: none;
}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/base/jquery-ui.css" rel="stylesheet" />

<input class="year" type="text" id="" />
<input class="datepicker" type="text" id="" />

于 2016-09-09T21:36:55.463 に答える