31
rated 0 times
[
33]
[
2]
/ answers: 1 / hits: 16645
/ 7 Years ago, fri, april 7, 2017, 12:00:00
I've an input field where users can insert a date between a date range.
So I added a new method on JQuery validator object:
$.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;
}
Then I added a new class rules:
$.validator.addClassRules({
myDateFieldRangeValidate: {
dateRange: {fromDate, toDate}
}
});
And finally I added the class to the input:
$(#myField).addClass(myDateFieldRangeValidate);
So, how can I pass the two dates to the validation function?
UPDATE: Added a code snippet
$.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;
});
var fromDate = new Date(2017-02-01);
var toDate = new Date(2017-12-31);
$.validator.addClassRules({
myDateFieldRangeValidate: {
dateRange: {fromDate, toDate}
}
});
$(#myField).addClass(myDateFieldRangeValidate);
$(#btnValidate).click(function(){
$(#frm1).validate();
});
<script src=https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js></script>
<script src=https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/additional-methods.min.js></script>
<script src=https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js></script>
<form id=frm1>
Date <input type=text id=myField>
<input type=button id=btnValidate value=Validate>
</form>
More From » jquery