如何使用jquery输入逗号值来查找日期是否存在

时间:2018-01-08 05:49:43

标签: javascript jquery

我有这样的输入

<input type="text" id="selecteddates" value="2018-01-11,2018-01-03,2018-01-27,2018-01-31">

我想要的是当我点击datepicker的日期并与上面输入的逗号日期值进行比较时,使用jquery查找日期是否存在,任何人都可以帮助我。

3 个答案:

答案 0 :(得分:1)

如果日期格式保持一致,请检查indexOf

return selectedDates.indexOf( inputDateValue ) != -1;

<强>演示

function checkDateExists()
{
  var inputDateValue = document.getElementById( "inputDatePicker" ).value;
  var selectedDates = document.getElementById( "selecteddates" ).value;
  //console.log( inputDateValue, selectedDates );
  if ( inputDateValue.trim().length == 0 || selectedDates.trim().length == 0 )
  {    
     return false;
  }
  return selectedDates.indexOf( inputDateValue ) != -1;
}

document.getElementById("checkDate").addEventListener( "click", function(){
   console.log( "Does date exists - " + checkDateExists());
});
Selected Dates - <input type="text" id="selecteddates" value="2018-01-11,2018-01-03,2018-01-27,2018-01-31">
<br><br><br>
Input Date - <input type="date" id="inputDatePicker">
<br><br><br>
<button id="checkDate">Check Date</button>

答案 1 :(得分:0)

您可以写下以下内容来完成您的要求。

$("#datepicker").on("change",function(){
     var selected = $(this).val(); // this will return the selected date of the datepicker
     var dates = $('#selecteddates').val();
     dates = dates.split(',');

     dates.forEach(function(thisDate){
         //compare the selected and the array dates in this area.
     });
});

上面的示例是一个概念性的示例,需要进一步的逻辑来实现您的需求。

答案 2 :(得分:0)

您是否要验证输入中的所有日期是否为有意义的日期格式?

以下代码段适用于此:

var str = '2018-01-11,2018-01-03,2018-01-27,2018-02-31';
validateDates(str);

function validateDates(dates)
{
    dates.split(',').forEach(function(item, index) {
      if (!validateDate(item)) {
          console.log('date "%s" is invalid at index %d', item, index);
      }
    });
}

function validateDate(dateStr)
{
    var d = new Date();
    var parts = dateStr.split('-');
    var fullYear = parseInt(parts[0], 10);
    var month = parseInt(parts[1], 10) - 1;
    var date = parseInt(parts[2], 10);
    d.setFullYear(fullYear);
    d.setMonth(month);
    d.setDate(date);

    if (d.getFullYear() === fullYear
      && d.getMonth() === month
      && d.getDate() === date) {
      return true;
    }

    return false;
}