2013-04-10 194 views
2

我想检查结束日期是否大于或等于开始日期,使用jquery验证。据验证结束日期大于开始日期,但不允许结束日期等于开始日期,验证结束日期等于大于开始日期

这里是我的代码 -

jQuery.validator.addMethod("greaterThan", 
function(value, element, params) { 
    if (!/Invalid|NaN/.test(new Date(value))) { 
     return new Date(value) > new Date($(params).val()); 
    } 
    return isNaN(value) && isNaN($(params).val()) 
     || (Number(value) > Number($(params).val())); 
},'Must be greater than {0}.'); 

jQuery("#collect_and_delivery").validate({ 
     errorElement:'div',    
     rules: {      
       from:{ 
         required:true 
        }, 
       to:{ 
        required:true 
       }, 
       start_date:{ 
        required:true 
       }, 
       end_date:{ 
        required:true, 
        greaterThan: "#start_date"    
       } 
     }, 
     messages: { 
       from:"Please enter collect address", 
       to:"Please enter delivery address", 
       start_date:"Please enter shipping collect date", 
       end_date: 
       { 
        required:"Please enter shipping delivery date", 
        greaterThan:"Delivery date and Collect date should be proper" 
       } 
     }     
    }); 
+0

在您的自定义验证器方法“greaterThan”中使用'大于或等于(> =)'。 – 2013-04-10 05:26:49

回答

2

您应该使用is greater than or equal to>=)在您的自定义方法greaterThan

改变这一行:

return new Date(value) > new Date($(params).val()); 

要:

return new Date(value) >= new Date($(params).val()); 

享受...

+0

感谢您的回复。我试过了,但还是不行! – Pramod 2013-04-10 05:30:59

+0

兄弟,它适用于我检查[演示小提琴](http://jsfiddle.net/kishor_subedi/KLQyw/) – 2013-04-10 06:40:59

+0

是的,它工作,我的代码是如此混乱,我在另一个文件中作出改变。对不起,谢谢。 – Pramod 2013-04-10 10:42:23

1

如果你想用简单的JavaScript来比较e下日期。这是一个;简单和容易。

function compareDate() { 
    var str = document.getElementById("start_date").value; 
    var end = document.getElementById("end_date").value; 
    var year = str.substring(0,4); 
    var month = str.substring(5,7); 
    var date = str.substring(8,10); 
    var endYear = end.substring(0,4); 
    var endMonth = end.substring(5,7); 
    var endDate = end.substring(8,10); 
    var startDate = new Date(year, month-1, date); 
    var endDate = new Date(endYear, endMonth-1, endDate); 

    if (startDate > endDate) { 
     alert('start date should be less than end date'); 
     return false; 
    } 
    else { return true; } 
} 
相关问题