我加载了我在IE中开发的内部页面,并在底部显示了一些JS错误:它显示第107行的字符6。我查看了JScript文件,它具有以下代码:
function isLessThanStartDate(obj)
{
var startdate = new Date(document.getElementById('txtSD').value);
var enddate = new Date(obj.value);
var weekending = new Date(document.getElementById('txtWE').value);
if (!(isDate(startdate)))
{
obj.style.backgroundColor="red";
alert (obj.value + " is not a valid date!");
obj.value="";
return;
}
if (enddate < startdate)
{
obj.style.backgroundColor="red";
alert ("End date: " + enddate + " cannot be less then start date: " + startdate);
obj.value="";
}
else if (enddate > weekending)
{
obj.style.backgroundColor="red";
alert ("End date: " + enddate + " cannot be greater then week ending date: " + weekending);
obj.value="";
}
else
{
obj.style.backgroundColor="";
}
}
Run Code Online (Sandbox Code Playgroud)
107行是它说的行
var weekending = new Date(document.getElementById('txtWE').value);
Run Code Online (Sandbox Code Playgroud)
为什么这样抱怨?我没有发现任何问题...
通常,错误会告诉您确切的错误和位置。就是这种情况。
我们可以判断出什么没错。
document因为如果没有的话,我们会遇到更大的问题,而且我们会早发现两行。刮一下。new Date("foo")不会抛出任何错误,它只会Date在收到警报报告时创建一个"Invalid Date"。甚至new Date(null)还可以。这使我们几乎没有机会结账。正如其他人所建议的,document.getElementById('txtWE')一定不要返回您期望的对象。知道这一点,请参阅此jsfiddle。如果我将id =“ txtWE”的输入“破坏”为其他任何ID,则会收到您的错误消息。
您确定txtWE在吗?