Что запускает CustomValidator с функцией ClientValidation? - PullRequest
0 голосов
/ 05 января 2019

Я использую 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;
            }
        }
    }
});
...