Jquery bassistance:验证结束日期是否在开始日期之后

时间:2010-01-12 21:00:35

标签: jquery-validate date-range

我正在使用jquery bassistance验证,需要验证开始日期是否在结束日期之后。我想知道是否有人知道这个功能是否存在以及我是否可以添加规则来执行此操作或者是否必须添加自定义检查。我很难找到任何与我的代码一起使用的示例,如果表单有效,它会转发到另一个函数。 (粘贴在下面)

$("#hotels").validate({
    rules: {
        checkinDate: {
            date: true
        },
        checkoutDate: {
            date: true
        }
    }
});


$("#hotels input.submit").click(function() {
  var isValid = $("#hotels").valid();
  if (isValid == true) {
      } else {
          hComp();
          return false;
      }
  } else {
      return false;
  }
});

我在另一个例子中看到了这一点,但我不确定如何使用它。

var startDate = new Date($('#startDate').val());
var endDate = new Date($('#endDate').val());

if (startDate < endDate){
// Do something
}

提前感谢您的任何帮助。

2 个答案:

答案 0 :(得分:1)

这个例子看起来就像你需要的那样。看看here

借用该jquery示例,假设您有以下HTML:

  <input id="startDate" value="Jan 12, 2009" />
  <input id="endDate" value="Jan 12, 2010" />

然后此JavaScript代码应显示警告“开始日期早于结束日期!” (假设值未被修改):

var startDate = new Date($('#startDate').val());
var endDate = new Date($('#endDate').val());

if (startDate < endDate){
    alert("Start date is before end date!");
}

答案 1 :(得分:0)

我在验证之前最终解决了这个问题,无论如何这可能是一个更好的主意。这是使用jquery ui datepicker的解决方案。然后我可以使用相同的逻辑进行最终验证检查。

$('input').filter('.datepicker').datepicker({

beforeShow:customRange,   showOn:'both',   buttonImage:contextPath +'/assets/images/icon-calendar.gif',   buttonImageOnly:true,   buttonText:'显示日期选择器'  });

function customRange(a){
  var b = new Date();
  var c = new Date(b.getFullYear(),b.getMonth(),b.getDate());
  if(a.id =='checkoutDate'){
   if($('#checkinDate')。datepicker('getDate')!= null){
    c = $('#checkinDate')。datepicker('getDate');
   }
  }
  返回{
   minDate:c
  }
 }