Javascript JQuery在日期范围之间验证日期

Javascript JQuery在日期范围之间验证日期,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我有一个输入字段,用户可以在其中插入日期范围之间的日期 因此,我在JQuery validator对象上添加了一个新方法: $.validator.addMethod("dateRange", function(value, element, from, to){ try { var date = new Date(value); if(date >= from && date <= to) return

我有一个输入字段,用户可以在其中插入日期范围之间的日期

因此,我在JQuery validator对象上添加了一个新方法:

$.validator.addMethod("dateRange", function(value, element, from, to){
    try {
        var date = new Date(value);
        if(date >= from && date <= to)
            return true;
    } catch(e) {
    }
    return false;
}
最后,我将类添加到输入中:

$("#myField").addClass("myDateFieldRangeValidate");
那么,如何将这两个日期传递给验证函数呢

更新:添加了代码片段

$.validator.addMethod(“dateRange”),函数(值、元素、从、到){
试一试{
var日期=新日期(值);

如果(date>=from&&date多亏了Arun p Johny,我在这里发布他的小提琴:

$.validator.addMethod(“dateRange”),函数(值、元素、参数){
试一试{
var日期=新日期(值);

如果(date>=params.from&&date多亏了Arun p Johny,我在这里发布他的小提琴:

$.validator.addMethod(“dateRange”),函数(值、元素、参数){
试一试{
var日期=新日期(值);

如果(date>=params.from&&date,这里有一种让jQuery验证器提供开始日期和结束日期的方法

<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/additional-methods.js"></script>
<script>
$( document ).ready(function() {
// add a method. calls one built-in method, too.
jQuery.validator.addMethod("optdate", function(value, element) {
    var startDate= new Date(jQuery(element)[0].attributes['data-rule-startDate'].value);
    var endDate= new Date(jQuery(element)[0].attributes['data-rule-endDate'].value);
    var d = new Date(value);
    console.log(d)
    return (d.getTime() <= endDate.getTime() && d.getTime() >= startDate.getTime())
}, "Please enter a valid date."
);



$('#frm1').validate();



});
</script>
<html>
<form id="frm1">
  Date <input type="text" id="myField" name="myField" data-rule-optdate="true" data-rule-startDate="2017-12-12" data-rule-endDate="2018-12-12">
</form>
</html>

$(文档).ready(函数(){
//添加一个方法。也调用一个内置方法。
addMethod(“optdate”),函数(值,元素){
var startDate=新日期(jQuery(元素)[0]。属性['data-rule-startDate']]。值);
var endDate=新日期(jQuery(元素)[0]。属性['data-rule-endDate']]。值);
var d=新日期(值);
控制台日志(d)
return(d.getTime()=startDate.getTime())
},“请输入有效日期。”
);
$('#frm1')。验证();
});
日期

下面是一种让jQuery验证器提供开始日期和结束日期的方法

<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/additional-methods.js"></script>
<script>
$( document ).ready(function() {
// add a method. calls one built-in method, too.
jQuery.validator.addMethod("optdate", function(value, element) {
    var startDate= new Date(jQuery(element)[0].attributes['data-rule-startDate'].value);
    var endDate= new Date(jQuery(element)[0].attributes['data-rule-endDate'].value);
    var d = new Date(value);
    console.log(d)
    return (d.getTime() <= endDate.getTime() && d.getTime() >= startDate.getTime())
}, "Please enter a valid date."
);



$('#frm1').validate();



});
</script>
<html>
<form id="frm1">
  Date <input type="text" id="myField" name="myField" data-rule-optdate="true" data-rule-startDate="2017-12-12" data-rule-endDate="2018-12-12">
</form>
</html>

$(文档).ready(函数(){
//添加一个方法。也调用一个内置方法。
addMethod(“optdate”),函数(值,元素){
var startDate=新日期(jQuery(元素)[0]。属性['data-rule-startDate']]。值);
var endDate=新日期(jQuery(元素)[0]。属性['data-rule-endDate']]。值);
var d=新日期(值);
控制台日志(d)
return(d.getTime()=startDate.getTime())
},“请输入有效日期。”
);
$('#frm1')。验证();
});
日期

查看您可以将元素添加为数据属性startDate和endDate,并从元素中获取它们抱歉,我不明白…有没有办法将两个值传递给验证器,或者我必须将该函数拆分为两个方法?使用您的范例创建一个JSFIDLE,以向您展示我的意思查看您可以将元素添加为数据的方法分配startDate和endDate,并从元素中获取它们抱歉,我不明白…有没有办法将两个值传递给验证器,或者我必须将该函数拆分为两个方法?使用您的范例创建一个JSFIDLE,以便向您展示我的意思