Javascript age gate不能在Chrome上工作,在Firefox, IE, Safari上很好

Javascript age gate not working on Chrome, fine in Firefox, IE, Safari

本文关键字:Firefox IE Safari 很好 age 工作 gate Chrome Javascript 不能      更新时间:2023-09-26

我正在尝试修复/重新设计一个网站,我不可能发现什么是错误的。这是一个年龄门,有三个输入日期(dia)月(mes)和年(anyo)和一个发送按钮(#btn_entrar)。它在火狐、Safari和浏览器上运行得很好,但在Chrome上,当用户输入年龄时,它只是忽略一切,并加载#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       
    } 
}); 

如有任何提示或帮助,不胜感激。

这可能是语言环境问题。而不是使用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!