0

我正在使用 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
}

提前感谢您的任何帮助。

4

2 回答 2

1

该示例看起来正是您所需要的。看看这里

借用那个 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!");
}
于 2010-01-12T21:18:29.590 回答
0

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

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

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

函数 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
}
}

于 2010-01-29T21:09:14.993 回答