2014-01-15 4 views
0

나는이 요일을 사용하지 못하게 할 다른 기능에 사용하기 위해 특정 일 수치를 수집하는이 함수를 사용합니다.jquery datepicker를 특정 요일을 설정할 수 없음

/* grab off days*/ 
function off(){ 
    for (var key in offDays) { 
     if (offDays.hasOwnProperty(key)) { 
      return offDays[key]; 

     } 
    } 
} 

예를 들어, 일요일과 월요일은 0, 1을 반환합니다. 이제 그 날을 사용하여 datepicker에서 날짜를 사용하지 않으려하지만 다음 코드를 사용하면 순서의 첫 번째 코드 만 비활성화됩니다. 어떻게 든 반복해야하지만 어떻게해야합니까? 주어진 하루를 활성화 할 경우 if 문 마지막

var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); 
//console.log('Checking (raw): ' + m + '-' + d + '-' + y); 
for (i = 0; i < disabledDays.length; i++) { 
    if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) !== -1 || new Date() > date) { 
     //console.log('bad: ' + (m+1) + '-' + d + '-' + y + '/' + disabledDays[i]); 
     return [false]; 
    } 
      if(date.getDay() === off()){ 
       return [false]; 
      } 


} 

확인을

사용자가 점검 할 수 beforeShowDay 기능을 사용할 수 있습니다
+0

'offDays'이 배열인가? –

+0

예! 전의. { "tues": 2, "weds": 3, "thurs": 4} –

+0

도 'disabledDays'를 공유 할 수 있습니다 –

답변

1

시도

var disabledDays = ["1-24-2014"]; 
var offDays = { 
    "tues": 2, 
    "weds": 3, 
    "thurs": 4 
}; 
var offds = $.map(offDays, function (day) { 
    return day 
}) 
$('input').datepicker({ 
    beforeShowDay: function (date) { 
     var m = date.getMonth(), 
      d = date.getDate(), 
      y = date.getFullYear(), 
      str = (m + 1) + '-' + d + '-' + y; 
     if ($.inArray(str, disabledDays) !== -1 || new Date() > date) { 
      return [false]; 
     } 
     if ($.inArray(date.getDay(), offds) !== -1) { 
      return [false]; 
     } 
     return [true] 
    } 
}) 

데모 : 무엇 Fiddle

0

좋아 :

beforeShowDay: function (a) { 
    var d = a.getFullYear() + '-' + (a.getMonth() + 1) + '-' + a.getDate(); 
    if (d==='2014-1-20') {//WILL DISABLE 20 Jan 2014 
     return [false, "", "disabled date"]; 
    } else { 
     return [true, "", ""]; 
    } 
} 

작업 예제이 fiddle

에 여기에있다
관련 문제