用于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'); } } });
希望有所帮助