C# 0x800a138f-JavaScript运行时错误:无法获取属性';拆分';指未定义的或空的引用
我在一个文本框上设置了一个asp自定义验证器,该文本框附带了一个jQuery日期选择器。 验证程序在Chrome和FireFox上运行得很好,但是当我在IE中运行它时,我收到以下错误消息:C# 0x800a138f-JavaScript运行时错误:无法获取属性';拆分';指未定义的或空的引用,c#,javascript,.net,internet-explorer,C#,Javascript,.net,Internet Explorer,我在一个文本框上设置了一个asp自定义验证器,该文本框附带了一个jQuery日期选择器。 验证程序在Chrome和FireFox上运行得很好,但是当我在IE中运行它时,我收到以下错误消息:0x800a138f-JavaScript运行时错误:无法获取未定义或空引用的属性“split”。我做错了什么 下面是我的验证函数和HTML代码 编辑:将JS函数修改为以下内容,但现在我遇到了另一个错误:对象不支持属性或方法“拆分” JavaScript: function isValidDate(source
0x800a138f-JavaScript运行时错误:无法获取未定义或空引用的属性“split”
。我做错了什么
下面是我的验证函数和HTML代码
编辑:将JS函数修改为以下内容,但现在我遇到了另一个错误:对象不支持属性或方法“拆分”
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:
截止日期:
*
尝试使用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);
显然
comp.split('/')[3]代码>返回未定义的
。因此,comp
不包含一个值,该值在/
上拆分时返回一个由4个元素组成的数组。解决方案:首先验证输入字符串。如果datetovalidate
包含09/09/2014
,并且希望arr
包含['09'、'09'、'2014']
,只需使用var arr=comp.split('/')代码>。
var arr = comp.split('/');
var m = parseInt(arr[0], 10);
var d = parseInt(arr[1], 10);
var y = parseInt(arr[2], 10);