2017-02-20 71 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