Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jquery日期选择器中禁用周末、假日_Jquery_Ajax_Jquery Ui_Jquery Ui Datepicker - Fatal编程技术网

在jquery日期选择器中禁用周末、假日

在jquery日期选择器中禁用周末、假日,jquery,ajax,jquery-ui,jquery-ui-datepicker,Jquery,Ajax,Jquery Ui,Jquery Ui Datepicker,我正在使用jquery ui日期选择器选择休假的开始日期和结束日期。当用户尝试选择休假开始日期时,我将禁用用户已应用的假期和休假天数。我从数据库中获取这些天数。到目前为止,它工作正常。这是我的代码 var unavailableDates=new Array(); //array of dates that should be disabled //ajax function for getting already applied leave days and holidays funct

我正在使用jquery ui日期选择器选择休假的开始日期和结束日期。当用户尝试选择休假开始日期时,我将禁用用户已应用的假期和休假天数。我从数据库中获取这些天数。到目前为止,它工作正常。这是我的代码

var unavailableDates=new Array(); //array of dates that should be disabled

//ajax function for getting already applied leave days and holidays

 function getUnavailable(){
 var rid=$('#rrid').val();

 var request=$.ajax({
    url: "../Controller/getUnavailableLeaveDays.php",
    type: "POST" ,
    data:{rid:rid},
    dataType: "json"

});
request.done(function(data){
    unavailableDates=data;  


});
request.fail(function(jgXHR,textStatus){
    alert ("Request failed:" + textStatus);
    return false;
});

}

function unavailable(date) {



 dmy = date.getFullYear()+  "-" + (date.getMonth()+1) + "-" +date.getDate() ;


 if ($.inArray(dmy, unavailableDates) < 0) {
    return [true,"","select"];

  } else {
    return [false,"","All ready Apllied for Leave or a holiday"];
  }
}

 $(function() {
 $( "#leave_commence" ).datepicker({
    defaultDate: "+1w",

    beforeShowDay: unavailable,
    dateFormat:"yy-mm-dd" ,
    numberOfMonths: 2,
    onClose: function( selectedDate ) {
        $( "#leave_ends" ).datepicker( "option", "minDate", selectedDate );
    }
 });
 $( "#leave_ends" ).datepicker({
    defaultDate: "+1w",

    beforeShowDay: unavailable,

    dateFormat:"yy-mm-dd" ,
    numberOfMonths: 2,
    onClose: function( selectedDate ) {
        $( "#leave_commence" ).datepicker( "option", "maxDate", selectedDate );
    }
   });
 });

现在我想从日期选择器禁用weekend。我可以在beforeShowDay中使用noWeekends方法。但我已经为beforeShowDay定义了一个函数。因此我尝试在该函数中使用noWeekend。但它不起作用。现在该怎么办?请帮助我。

不要将字符串与日期进行比较,按照说明使用值,并参见下面的代码:

function unavailable(date) {
    dmy = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
    var found = false;
    for (var i in unavailableDates) {
        if (dmy.valueOf() == unavailableDates[i].valueOf()) {
            found = true;
        }
    }
    if (!found) {
        return [true, "", "select"];
    } else {
        return [false, "red2", "no"];
  }
 }
在CSS中,您可以添加:

.red2 {
    background-color:red
}