2013-06-27 49 views
1

我的代码非常适合作为小提琴独立使用,但一旦将代码导入到我的WordPress环境中后,该代码就无法正常工作。基本上我试图限制基于日期范围数组的可选日期。jQuery Datepicker未在WordPress环境中显示

工作小提琴:http://jsfiddle.net/rLnTQ/658/

任何理由为什么当我导入我的WordPress网页这是行不通的?我相信这可能是一些做的参考“beforeShowDay:disabledays” ..

这里是我的代码吗:

var unavailableDates = ["29-6-2013"]; 

function disabledays(date) { 
    dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear(); 
    if ($.inArray(dmy, unavailableDates) == 0) 
    { 
     return [false, "", "Unavailable"] 
    } 
    else 
    { 
     var day = date.getDay(); 
     return [true, "", ""]; 
    } 
} 

jQuery(document).ready(function($){ 
$('#bookingDate').datepicker({ 
           changeMonth:true, 
           changeYear:true, 
           dateFormat:"dd/mm/yy", 
           minDate:"+2d", 
           constrainInput: true, 
           beforeShowDay: disabledays 
          }); 
}); 
+0

什么错误? –

+0

TypeError:$是不确定的if($ .inArray(dmy,unavailableDates)== 0){ – nematoth

+0

究竟是什么问题?日期选取器没有出现?你能发布一个链接到你的网站或创建一个失败的例子吗? – Thomas

回答

1

你的代码工作正常,好像你有$ alias conflict,有有几个解决方案,为它

1)jQuery.inArray代替$.inArray

2),我宁愿是用的jQuery给noConflict函数来解决这个问题的另一种解决方法,你可以阅读更多这里http://api.jquery.com/jQuery.noConflict/

jQuery.noConflict(); 
(function($) { 
    $(function() { 
    // more code using $ as alias to jQuery 
    }); 
})(jQuery); 
// other code using $ as an alias to the other library 

你也可以试试这个代码(代码:)整齐版),

var unavailableDates = ["6-29-2013","6-27-2013","7-2-2013"]; 

function disabledays(date) { 
var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();  

    for (i = 0; i < unavailableDates.length; i++) { 
     if(jQuery.inArray((m+1) + '-' + d + '-' + y,unavailableDates) != -1 || new Date() > date) { 
      return [false]; 
     } 
     return [true]; 
    } 
} 

    jQuery(document).ready(function($){ 
    $('#bookingDate').datepicker({ 
            changeMonth:true, 
            changeYear:true, 
            dateFormat:"dd/mm/yy", 
            minDate:"+2d", 
            constrainInput: true, 
            beforeShowDay: disabledays 
           }); 
    }); 

这里是的jsfiddle http://jsfiddle.net/rLnTQ/659/

+0

这没有任何结果。同样的错误.. – nematoth

+0

它被调用。我把它放置如下: dmy = date.getDate()+“ - ”+(date.getMonth()+ 1)+“ - ”+ date.getFullYear(); alert('disabledays called'); if($ .inArray(dmy,unavailableDates)== 0) – nematoth

+0

我已根据您的要求更新我的答案代码,请尝试一下。它工作完美的小提琴 – wakqasahmed