是什么触发带有ClientValidationFunction的CustomValidator?

时间:2019-01-04 21:15:18

标签: asp.net vb.net customvalidator

我正在使用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;
            }
        }
    }
});

0 个答案:

没有答案