【问题标题】:How do I validate that the end date is greater than start date?如何验证结束日期大于开始日期?
【发布时间】:2011-12-05 06:25:09
【问题描述】:

我使用another answer 来解决我的问题。

jQuery.validator.addMethod("greaterThan", function(value, element, params) {
    return new Date(value) > new Date($(params).val());
}, 'Must be greater than {0}.');

但是,我的日期字段是一个文本框,格式类似于 dd-mm-yyyy。如何更改此代码以使验证生效?

【问题讨论】:

    标签: jquery validation date


    【解决方案1】:

    您首先必须解析您的文本框值以从中获取日期。最好的方法是正则表达式:

    你的验证器函数体应该是(内联 cmets 中的解释):

    // date parsing regular expression
    var rx = /([0-2]?\d|3[01])-(0?\d|1[0-2])-(\d{4})/i;
    
    // get textbox value
    var val = $(params).val();
    
    // default date
    var date = new Date();
    
    // parse date if entered correctly
    if (rx.test(val))
    {
        // get date parts
        var result = rx.exec(val);
    
        // generate date instance
        date = new Date(result[3], result[2]-1, result[1]);
    }
    
    // validate dates
    return new Date(value) > date;
    

    【讨论】:

      【解决方案2】:
      function ValidateEndDate() {
              var startDate = $("txtfromdate").val();
              var endDate = $("txttodate").val();
              if (startDate != '' && endDate !='') {
                  if (Date.parse(startDate) > Date.parse(endDate)) {
                      $("txttodate").val('');
                      alert("Start date should not be greater than end date");
                  }
              }
              return false;
          }
      

      【讨论】:

        猜你喜欢
        • 2012-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-30
        • 1970-01-01
        • 1970-01-01
        • 2010-10-24
        相关资源
        最近更新 更多