用于DataTypeCheck的jQuery UI datetimepicker和ASP.NET CompareValidator

Jam*_*Ide 2 asp.net validation jquery jquery-ui

我正在使用带有jQuery UI datepicker的ASP.NET文本框.文本框允许编辑,以便用户可以手动输入日期或清除现有条目.我添加了一个CompareValidator来对文本框执行数据类型检查,这在使用datepicker选择日期后会导致错误.ASP.NET客户端验证中发生错误:

Microsoft JScript runtime error: 'length' is null or not an object
Run Code Online (Sandbox Code Playgroud)

ValidatorOnChange中发生错误.我怎样才能解决这个问题?是否可以将datepicker与ASP.NET验证器控件一起使用?

我的标记是:

<asp:Label runat="server" AssociatedControlID="uxInstallDate">Install Date</asp:Label>
<asp:TextBox ID="uxInstallDate" runat="server" Columns="10" />
<asp:CompareValidator runat="server" ControlToValidate="uxInstallDate" Operator="DataTypeCheck" Type="Date" Text="*" ErrorMessage="Install Date must be a date." Display="Dynamic" />
Run Code Online (Sandbox Code Playgroud)

请注意,CompareValidator中缺少的ID属性是有意的,添加它并没有什么区别.我的jQuery初始化是:

$(document).ready(function() {
    $("#<%= uxInstallDate.ClientID %>").datepicker({ changeMonth: true });
});
Run Code Online (Sandbox Code Playgroud)

Jam*_*Ide 7

我想我找到了解决方案.这是IE中出现的错误,而不是Firefox(我没有测试任何其他浏览器).解决方案是在初始化中覆盖onSelect方法:

$("#<%= uxInstallDate.ClientID %>").datepicker({ changeMonth: true, onSelect: function() { } });
Run Code Online (Sandbox Code Playgroud)

我发现这个问题的描述和解决方案在这里和一个替代的解决方案在这里.