我开发了一个脚本,用于检查用户是否选择了有效的月份和年份信用卡.
function validatemonth()
{
var dt = new Date();
var mth = dt.getMonth();
var yr = dt.getYear(); //this seems to return different data in different browsers
yr = yr + 1900;
if(eval(document.PurchaseCredit.cc_expire_month.value) < mth && eval(document.PurchaseCredit.cc_expire_year.value) == yr)
{
document.getElementById('error').innerHTML = "Expiry Date cannot be less than current date.";
document.forms['PurchaseCredit'].submit.disabled = true;
}
else
{
document.getElementById('error').innerHTML = "";
document.forms['PurchaseCredit'].submit.disabled = false;
}
}
Run Code Online (Sandbox Code Playgroud)
此脚本在FireFox中运行良好,但在IE7中不起作用.为什么?
Adi*_*gal 10
它不起作用,因为getYear()为不同的浏览器返回不同的结果.
IE浏览器:
Run Code Online (Sandbox Code Playgroud)* Returns four digits for years before 1900 and after 1999.火狐:
Run Code Online (Sandbox Code Playgroud)* Returns a value less than 0 for years before 1900. For example, the1800年回归-100.*大于或等于2000的年份返回值100或更大.例如,2008年返回108.
您添加的1900仅适用于Firefox.
简单的解决方案:尝试使用getFullYear()
Date.getYear()取决于浏览器.在Firefox中它返回1900年后的年数,在IE中它返回完整的4位数年份.
Date.getFullYear()返回所有浏览器中的4位数年份,因此您应该始终使用它.
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |