Я использую customValidator, чтобы проверить, находится ли дата в допустимом диапазоне или нет в текстовом поле. Это прекрасно работает, если вы вручную вводите дату и вызывает мою функцию ClientValidationFunction. К сожалению, если я использую всплывающий календарь, чтобы выбрать дату, мой customValidator не срабатывает.
Я надеялся получить лучшее понимание того, как запускаются asp: CustomValidators.
Я пытался принудительно подтвердить ввод, когда календарь закрыт, но безуспешно.
<asp:CustomValidator ID="ValidDateCheck" runat="server" ControlToValidate="txtDate" ErrorMessage="Please enter a valid date." ClientValidationFunction="clientValidate"
EnableClientScript="True" Display="Dynamic" CssClass="dateboxRJS-validator text-danger" ValidateEmptyText="true"></asp:CustomValidator>
Javascript
clientValidate = function (source, args) {
console.log("validating...");
var s = document.getElementById(source.controltovalidate);
var minDate = moment("1900-01-01");
var maxDate = moment().add(200, 'y');
var inputDate;
if (moment(s.value, "MM/DD/YYYY", true).isValid()) {
inputDate = moment(s.value, "MM/DD/YYYY");
console.log(s.value);
console.log("break");
if (!inputDate.isBetween(minDate, maxDate)) {
args.IsValid = false;
s.classList.add("is-invalid");
Page_BlockSubmit = true;
return false;
} else {
s.classList.remove("is-invalid");
args.IsValid = true;
Page_BlockSubmit = false;
return true;
}
}
}
});