0x800a138f-JavaScript运行时错误:无法获取属性'拆分'的未定义引用或null引用

0x800a138f - JavaScript runtime error: Unable to get property 'split' of undefined or null reference

本文关键字:引用 未定义 运行时错误 null 拆分 获取 属性 0x800a138f-JavaScript      更新时间:2023-09-26

我在一个文本框上设置了一个asp自定义验证器,该验证器附带了一个jQuery日期选择器。验证器在Chrome和FireFox上运行得很好,但当我在IE中运行它时,我会收到以下错误消息:0x800a138f - JavaScript runtime error: Unable to get property 'split' of undefined or null reference。我做错了什么?

下面是我的验证函数和HTML代码。

编辑:将JS函数修改为如下,但现在我得到了一个不同的错误:Object doesn't support property or method 'split'

JavaScript:

function isValidDate(source, datetovalidate) {
    if (datetovalidate != null)  // null handing
    {
        var comp = String(datetovalidate);
        if (comp != null && comp != undefined)
        {
            var arr = comp.split('/');
            var m = parseInt(arr.split('/')[0], 10);
            var d = parseInt(arr.split('/')[1], 10);
            var y = parseInt(arr.split('/')[2], 10);
            var date = new Date(y, m - 1, d);
        }
        var date = new Date(y, m - 1, d);
        } else {
            return false;
        }
        if (date.getFullYear() == y && date.getMonth() + 1 == m && date.getDate() == d) {
            //Valid date
            return true;
        } else {
            //Invalid date
            return false;
        }
    }

HTML:

<asp:Label ID="lblDueDate" runat="server" AssociatedControlID="dpDueDate">Due Date:
<span class="required">*</span></asp:Label>
<asp:TextBox ID="dpDueDate" runat="server" MaxLength="10" />
<asp:CustomValidator ID="cvDueDate" runat="server" ControlToValidate="dpDueDate" 
OnServerValidate="IsValidDate" ClientValidationFunction="isValidDate"
ErrorMessage="Please enter a valid date" ForeColor="red" 
ValidateEmptyText="True"></asp:CustomValidator>

尝试使用arr[n]而不是arr.split('/')[n]

       var arr = comp.split('/');
       var m = parseInt(arr[0], 10);
       var d = parseInt(arr[1], 10);
       var y = parseInt(arr[2], 10);