代码改变世界

jQuery UI Datepicker“’length’为空或不是对象”错误的解决方法

2011-08-24 16:55  XU Yanzheng  阅读(260)  评论(0编辑  收藏  举报

我们开发ASP.NET站点时,如果将jQuery UI Datepicker与ASP.NET的验证控件(如:RequiredFieldValidator)组合使用:

<asp:TextBox ID="txtDate" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqDate" runat="server" ControlToValidate="txtDate" ErrorMessage="*"></asp:RequiredFieldValidator>

<script type="text/javascript">
$(
"#<%= txtDate.ClientID %>").datepicker();
</script>

那么当我们在Datepicker中选择某个日期时就会出现“'length'为空或不是对象”的错误。这由于Datepicker的bug造成的,经过我的研究,找到了一个很简单的解决方法——捕获Datepicker的onSelect事件,但不做任何处理:

$("#<%= txtDate.ClientID %>").datepicker({
onSelect:
function(dateText, inst) {
// 不做任何处理
}
});

现在我们选择某个日期后就不会出现“'length'为空或不是对象”的错误了,而ASP.NET验证控件也可照常运行。

希望本文对您有所帮助。