ドキュメントによると、カレンダーの設定minimumDate
は「以前の日付をこの日付にリセット」しますが、以前の日付の選択を無効にしたいのですが。このコントロールは、最小日付の月の「前の」月ボタンを無効にしますが、それでも前の日付を選択できます。
質問する
3190 次
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 に答える