我正在尝试修复/重新设计一个网站,我不可能发现什么是错的。这是一个年龄门,有三个输入日(dia)月(mes)和year(anyo)和一个发送按钮(#btn_entrar)。它在Firefox,Safari和资源管理器上完美运行,但在Chrome中,当用户输入年龄< 18它只是忽略所有内容并加载#page2,而不是显示警报。我一直在阅读,我认为它可能是.click(function()部分,但我无法弄明白(我只是在学习javascript)。这是代码:
$('#btn_entrar').click(function() {
var dia=("0" + $("#dia").val()).slice (-2);
var mes=("0" + $("#mes").val()).slice (-2);
var anyo=("000" + $("#anyo").val()).slice (-4);
var fecha_nac=dia+'/'+mes+'/'+anyo;
var curr = new Date();
var txtVal = mes+'/'+dia+'/'+anyo;
if (anyo<1900) { alert("Fecha no válida."); exit(); }
if (isDate(txtVal)==false) { alert("Fecha no válida."); exit(); }
curr.setFullYear(curr.getFullYear() - 18);
var dob = Date.parse(fecha_nac);
if((curr-dob)<0)
{
alert("Se requiere tener más de 18 años para acceder a la web.");
}
else
{
$('#page1').delay(0).fadeOut(1500);
// Cargar pagina 2
$('#page2').delay(1300).fadeIn(1500);
$('#cabecera').delay(1000).fadeIn(1500); // mostrar avioneta
}
});
非常感谢任何提示或帮助。
答案 0 :(得分:1)
这可能是区域设置问题。不要使用Date.Parse()
,而是尝试使用类似
anyo = int.Parse(anyo, 10);
mes = int.Parse(mes, 10);
dia = int.Parse(dia, 10);
var dob = new Date(anyo, mes - 1, dia);
代替。
请注意mes - 1
,Date(year, month, day)
构造函数编号从0到11,而不是1 - 12!