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

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

Microsoft JScript runtime error: 'length' is null or not an object 

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

我的标记是:

 Install Date   

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

 $(document).ready(function() { $("#").datepicker({ changeMonth: true }); }); 

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

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

我在这里找到了问题和解决方案的描述以及替代解决方案。

基于Jamie的解决方案和他提供的备用解决方案,这是我的解决方法,以绕过这个只出现在IE上的奇怪错误。

我假设datepicker控件选择的日期是一个有效日期,所以我隐藏了CompareValidator的消息或图像错误(如果它是可见的)。

 $(".myControl").datepicker({ onSelect: function() { if ($.browser.msie) { if ($(this).next("span").css("display") != "none") { $(this).next("span").css("display", "none"); } } else { $(this).trigger('change'); } } }); 

希望有所帮助