2011-08-02 14 views
0

jQuery UI datepickerをコマースサイトで使用して出荷日を設定する初心者です。私は、次のように定義された最初の有効出荷日と日付入力フィールドを移入します:後で今日よりjQuery UI datepickerを最初の日付に有効期限を設定して有効に設定する

  • 。そして
  • 月曜日または火曜日
  • いずれか

(他にも条件がありますが、私は一瞬のためにそれらを無視しています。)

私がこれを書いている時点で、今後数日間、正しいですこの日付の価値は2011年8月8日です。ここで

ページです。ここで

http://www.lolacookies.com/gifts/

が動作していない私のコードです。コメントされた部分は、作業を行うことになっているものです。入力の値がまったく設定されていません。以前の試行では、日付はminDateの値に設定されていますが、他の値には設定されていません。

$(document).ready(function(){ 


$(".datepicker").datepicker({ 
    beforeShowDay: nonWorkingDates, 
    hideIfNoPrevNext: true, 
    numberOfMonths: 1, 
    minDate: "+1d", 
    maxDate: "+3M", 
    showAnim: "blind", 
    showOn: "both", 
    buttonImage: "/images/misc/calendar.png", 
    buttonImageOnly: true, 
    buttonText: "Select a date" 
}); 


//set firstShippingDate to value of minDate 
//we don't ship on same day, so minDate is today + 1d 
var firstShippingDate = $(".datepicker").datepicker("option", "minDate"); 

//we ship only on Monday and Tuesday, so test for that 
var dayOfWeek = firstShippingDate.getDay(); 

//if it's not Monday or Tuesday, advance firstShippingDate by one day and test again 
while (dayOfWeek == 0 || dayOfWeek == 3 || dayOfWeek == 4 || dayOfWeek == 5 || dayOfWeek == 6) 
    { 
    firstShippingDate.setTime(firstShippingDate.getTime() + 86400000); 
    dayOfWeek = firstShippingDate.getDay(); 
    }; 

//should exit loop with firstShippingDate set to first Monday or Tuesday that's not today 
//set datepicker to that firstShippingDate 
$(".datepicker").datepicker("setDate" , firstShippingDate); 


function nonWorkingDates(date){ 
    var day = date.getDay(), Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6; 
    var closedDates = [[06, 27, 2011], [06, 28, 2011], [06, 29, 2011], [07, 04, 2011]]; 
    var closedDays = [[Sunday], [Wednesday], [Thursday], [Friday], [Saturday]]; 
    for (var i = 0; i < closedDays.length; i++) { 
     if (day == closedDays[i][0]) { 
      return [false]; 
     } 

    } 

    for (i = 0; i < closedDates.length; i++) { 
     if (date.getMonth() == closedDates[i][0] - 1 && 
     date.getDate() == closedDates[i][1] && 
     date.getFullYear() == closedDates[i][2]) { 
      return [false]; 
     } 
    } 

    return [true]; 
} 


}); 

答えて

0

DateJSライブラリをチェックアウトするとよいでしょう。それはのあなたが次月曜日を得るために、このようなクールなものを行うことをしてみましょう:

Date.today().next().monday(); 

は、だからあなたの場合には、あなたは次月曜日または火曜日を取得するには、このような何かを行うことができます。

if (Date.today().is().monday()) { 
    firstShippingDate = Date.today().next().tuesday(); 
} else { 
    firstShippingDate = Date.today().next().monday(); 
} 
+0

ニフティ - I膨大な使用量を考えることができます。ありがとう! – Laurence

関連する問題