如何验证来自datepicker

时间:2017-01-04 12:39:57

标签: javascript jquery datepicker

我如何验证我已经选择了3个日期。

示例:

enter image description here

让我们说如果我有3个日期,我想提醒一些消息。

2 个答案:

答案 0 :(得分:1)

这正是您所需要的。

首先,您必须在split中使用wrap个值并array。然后,您必须检查值是否为连续days

function diffDays(date1,date2){
   return parseInt((date2 - date1) / (1000 * 60 * 60 * 24));  
}
$('button').click(function(){
    var values=$('input').val().split(',').map(function(item){
        return new Date(item);
    });
    var result=checkValues(values);
    if(result==1){
       alert('Yes');
    }
    else{
       alert('No');
    }
});
function checkValues(values){
    values.sort(function(a,b){return a.getTime() - b.getTime()});
    if(values.length<3){
       return 0;
    }
    else{
       var exist=0;
       console.log(values);
       for(i=0;i<values.length-2;i++){
            if(diffDays(values[i],values[i+1])==1 && diffDays(values[i+1],values[i+2])==1){
                exist=1;
            }
       }
       return exist;
    }  
}

这是jsfiddle solution.

答案 1 :(得分:0)

您可以根据需要试用此代码:jsfiddle.net/bharatsing/LcqM7/707/

此检查日期在同一行,但不是必须按相同的顺序排列。

<div id="divDates">
    <input id="txtDates" type="text" type="text" class="form-control" />
    <button id="btnValidate">
    Validate
    </button>
</div>


$('#divDates input').datepicker({
    multidate: true
});
$('#btnValidate').click(function(){
     var values=$('#txtDates').val().split(',');       
     checkDatesInRow(values);       
});

function checkDatesInRow(Dates){
  var curr = new Date(Dates[0]); // get current date
  var first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week
  var last = first + 6; // last day is the first day + 6

  var firstday = new Date(curr.setDate(first));
  var lastday = new Date(curr.setDate(last));

  var IsValid=true;
  for(var i=0;i<Dates.length;i++){
     var dateSelected = new Date(Dates[i]);
     if(dateSelected>=firstday && dateSelected<=lastday){

     }
     else{
       IsValid=false;
     }
  }

  if(IsValid){
     alert("In same row");
  }
  else{
    alert("Not in same row");
  }
}