为什么JQuery UI datepicker beforeshowday什么都不做?

时间:2016-07-14 14:02:55

标签: jquery jquery-ui datepicker

在下面的代码中,您可以看到填充了unix时间戳的开始和结束数组。 相同的索引(begin [0],end [0])代表一个范围。 现在我的问题是如何在datepicker中禁用这些日期。 我用beforeshow方法尝试了它,但这只会禁用最后一个范围。 else-block启用之前的日期,但是当我删除它时,有一个例外,我必须返回一个数组。那么如何让datepicker对已经禁用的日期做任何事情呢?

<?php 

  $db = mysqli_connect("localhost", "root", "", "hmt_db");

  $hardwareId=$_POST["hardwareId"];

  $abfrage="SELECT lendFrom,lendTill FROM hardware,lending 
  WHERE hardwareId=$hardwareId 
  AND HardwareId=hardware_hardwareId";

  $from=array();
  $to=array();
  $i=0;
  $ergebnis=mysqli_query($db,$abfrage);
  while($row=mysqli_fetch_object($ergebnis)){
           $from[$i]=$row->lendFrom;
           $to[$i]=$row->lendTill;
   }

?>


var begin = <?php echo json_encode($from);?>;
var end = <?php echo json_encode($to);?>;
$(function() {

    $( "#from" ).datepicker({
        minDate: new Date(),
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 3,
        dateFormat: "dd. MM yy",
        beforeShowDay: function(date){
            var datee = Math.floor(date.getTime()/1000);
            var array = new Array;
            for(var i = 0;i<begin.length;i++) {
                if(datee >= begin && datee <= end || $(this).attr("class")=="ui-state-disabled") {
                    return [false,""];
                } else return [true,""];
            }
        },
        onClose: function( selectedDate ) {
            $( "#to" ).datepicker( "option", "minDate", selectedDate );
        }
    });

0 个答案:

没有答案