1

ドキュメントによると、カレンダーの設定minimumDateは「以前の日付をこの日付にリセット」しますが、以前の日付の選択を無効にしたいのですが。このコントロールは、最小日付の月の「前の」月ボタンを無効にしますが、それでも前の日付を選択できます。

4

3 に答える 3

2

いくつか検索しても解決策が見つからなかったので、ついに思いついた解決策を投稿します。カレンダーの無効な日付ルールを使用して、次を作成しました。

YUI().use('calendar', function (Y) {

    var calendar, rules,
        settings = { contentBox: '#dueDateSelect', minimumDate: new Date() };

    function getDisabledDatesRule(date, name) {
        var year = date.getFullYear(), 
            month = date.getMonth(), 
            daybefore = date.getDate() - 1, 
            r = {};
        r[year] = {};
        r[year][month] = {};
        r[year][month]['1-' + daybefore] = name;
        return r;
    }

    if (settings.minimumDate) {
        settings.disabledDatesRule = 'days-before-min';
        rules = getDisabledDatesRule(
            settings.minimumDate, 
            settings.disabledDatesRule
        );
    }

    calendar = new Y.Calendar(settings).render();

    if (rules) {
        calendar.set("customRenderer", {
            rules: rules
        });
    }

});
于 2012-06-01T20:20:58.323 に答える
2

私はもっ​​と簡単な方法でそれをしました、私はそれがあなたに役立つことを願っています:

    //Setting the date to today's date.  
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth(); //January is 1
var yyyy = today.getFullYear();


var calendar = new Y.Calendar({
  contentBox: "#mycalendar",
  width:'340px',
  showPrevMonth: true,
  showNextMonth: true,
  minimumDate: new Date(yyyy, mm, dd) , 
  date: new Date()}).render();
于 2013-11-07T19:54:02.450 に答える
0

YUI3カレンダーについて質問されたと思いますが、2つ目のオプションが必要な場合にのみ、JSCal2をテストすることをお勧めします。 これを使用してこれを実現する方法をようやく理解しました。必要なのは、現在の日を「 min」なので、今日は最初の選択可能な日です!これをコピーして貼り付けると、機能します。

<input size="40" id="cal_txt_date" />
<button id="cal_btn">...</button>
<br />
<script type="text/javascript">//<![CDATA[ 
  var now = new Date();
  var cal = Calendar.setup({ min : now, trigger : "cal_btn", });
  cal.manageFields("cal_btn", "cal_txt_date", "%A %e de %B del %Y a las %I:%M %p");
//]]>
</script>

ご覧のとおり、新しい日付オブジェクトは変数「now」で作成され、「min」(または将来の日付を選択しない場合はmax)に設定されています。これがお役に立てば幸いです=)コードを次のように貼り付けますここにあり、JSCal2で動作するはずです。

于 2012-06-01T20:36:37.103 に答える