2017-02-20 72 views
-2

我使用的jQuery validation plugin,我想利用这需要数据分钟 - 日 - ADT和数据-MAX最新-adt的一个自定义的方法,使只有在日期间有效。jQuery验证自定义的方法从数据属性

<input type="text" class="full-date required" data-age="adt" data-min-date-adt="22.04.2017" data-max-date-adt="22.04.2005"> 

有没有办法做到这一点与此插件?

+0

搜索你'定制validator'链接的文档,并看看这个►[https://jqueryvalidation.org/jQuery.validator.addMethod/]( https://jqueryvalidation.org/jQuery.validator.addMethod/) - 这应该给你详细介绍如何添加自定义验证器。 – Nope

+0

我知道有关文档,但我不知道如何实现这个数据属性... – Kripton

+0

那么你的问题是,如何访问数据属性?如果是这样,你可以像这样做'$('input')。data('minDateAdt')'另请参阅相关的jQuery文档►[https://api.jquery.com/data/](https://api。 jquery.com/data/) – Nope

回答

1

在这里看到的小提琴:http://jsfiddle.net/w249x1ba/1/

$.validator.methods.adt = function(value, element) { 
    var min = $(element).data('min-date-adt'); 
    var max = $(element).data('max-date-adt'); 

    var minDate = toDate(min); 
    var maxDate = toDate(max); 

    console.log(minDate); 
    console.log(maxDate); 

    var check = $(element).val(); 
    console.log(check); 
    var checkDate = toDate(check); 
    console.log(checkDate); 

    function toDate(datestr) { 
     var from = datestr.split("."); 
     return new Date(from[2], from[1] - 1, from[0]); 
    } 

    var result = checkDate > minDate && checkDate < maxDate; 
    console.log(result); 
    return result; 
}; 
+0

非常感谢你shi!你帮了我很多! 人们低估了我的问题,但我需要的仅仅是解决方案... – Kripton