У меня есть несколько полей ввода.И я проверяю эти поля, используя jQuery Validation Plugin, как можно найти здесь: https://jqueryvalidation.org/
Я могу проверить входные текстовые поля и входные текстовые поля, получая значения даты.Однако я должен убедиться, что полученная дата составляет от 4 до 8 недель с сегодняшнего дня.Как это сделать?
HTML:
<form>
Name: <input type="text" maxlength="50" class="nf-givenname"><br/> <br/>
date that does not work:
<input type="text" maxlength="45" class="nf-date-picker" name="Date">
<br/> <br/>
<input type="submit" value="Submit" class="btn-save date" commandtype="Save">
</form>
И код jQuery для меня такой, как показано ниже:
$(document).ready(function() {
var $form = $("form");
$form.validate({
submitHandler: function() {
//
}
});
// Ensures the classNames associated with the form elements can be used for validation
$.validator.addClassRules = function(className, rules) {
if (className.constructor === String) {
var obj = {};
obj[className] = rules;
className = obj;
}
$.each(className, function(n, r) {
$("." + n).each(function(i, e) {
var self = $(e);
self.rules("add", r);
});
});
};
$.validator.addMethod(
"dateRange",
function(value, element, params) {
console.log("value is" + value);
try {
console.log(
"Entered value is" +
value +
" params.from is" +
params.from +
" param to is" +
params.to
);
if (value > params.from && value < params.to) {
return true;
}
} catch (e) {}
return false;
},
"Please enter date within range (4 to 8 weeks)"
);
var formattedDate = new Date()
.toJSON()
.slice(0, 10)
.split("-")
.reverse()
.join("-"),
dateTokens = formattedDate.split("-"),
dt = new Date(dateTokens[2], parseInt(dateTokens[1], 10) - 1, dateTokens[0]), // months are 0 based, so need to add 1
inFourWeeks = new Date(dt.getTime() + 28 * 24 * 60 * 60 * 1000)
.toJSON()
.slice(0, 10)
.split("-")
.reverse()
.join("-"),
inEightWeeks = new Date(dt.getTime() + 56 * 24 * 60 * 60 * 1000)
.toJSON()
.slice(0, 10)
.split("-")
.reverse()
.join("-");
var fromDate = inFourWeeks;
var toDate = inEightWeeks;
$(".nf-date-picker").addClass("myDateFieldRangeValidate");
$.validator.addClassRules({
myDateFieldRangeValidate: {
dateRange: {
from: fromDate,
to: toDate
}
},
"nf-givenname": {
required: true,
messages: {
required: "Please specify your given (first) name"
}
},
"nf-date-picker": {
required: true,
messages: {
required: "Please choose a date"
}
}
});
});
Я создал ручку, чтобы показать, с чем я борюсь в данный момент.Ссылка на кодекс работы следующая: https://codepen.io/hellouniverse/pen/aGjoKw?editors=1012