在IE中验证的问题

时间:2011-05-12 10:24:00

标签: javascript internet-explorer

我在IE8上收到一条错误消息....所有其他浏览器似乎都很好......我已经将其缩小到我的JavaScript的特定部分但是我无法找到解决方法。它似乎是更大或更少的迹象(我可能是错的)。任何人都知道一种解决方法(也许是另一种写标志的方式,写作和GT;不会这样做)

示例代码:

var selectedDate = new Date(document.getElementById("ExpYear").value,document.getElementById("ExpMonth").value)
var nextmonth = selectedDate.setMonth(selectedDate.getMonth());
var last_date_of_selected_date = new Date(nextmonth -1);
var today = new Date();
today = new Date(today.getFullYear(), today.getMonth());

if (today > selectedDate) {<!--i think its the < sign-->
   return false;
}
else {
    return true;
}


window.onload = function() {
    var a = document.getElementById("PaymentForm");
    a.onsubmit = function() { return Validate() };
}

2 个答案:

答案 0 :(得分:1)

var selectedDate = new Date (document.getElementById("ExpYear").value,document.getElementById("ExpMonth").value)

我不确定这是否能解决您的问题,但这行代码至少存在三个问题:

  1. Date构造函数需要零参数,一个参数包含以毫秒为单位的时间戳或一个字符串(不鼓励) 三个参数包含年,月和分别为天数(可能后跟四个包含小时,分钟,秒,毫秒的参数)
  2. 月份参数从1月的0开始,因此您可能应该减小输入值(除非您希望用户输入0到11之间的数字)。
  3. 缺少分号;虽然JavaScript解释器有一些称为自动分号插入的东西,但你可能会在所有地方用分号编写更好的代码。
  4. 在您的第二段代码中

    更新,关于anull的消息是否是对象可能是因为没有ID PaymentForm的元素,因此尝试将事件处理程序附加到a的行将产生错误。

    此外,你在结束括号后省略了分号(你可能在return Validate();之后忘记了右括号分号)。

答案 1 :(得分:0)

我发现你在selectedDate变量声明中缺少分号。 Internet Explorer对分号非常挑剔。

var selectedDate = new Date (document.getElementById("ExpYear").value,document.getElementById("ExpMonth").value)