繁体   English   中英

Javascript年龄门无法在Chrome上运行,在Firefox,IE,Safari中可以正常使用

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

我正在尝试修复/重新设计网站,但我可能无法找出问题所在。 这是一个年龄门,具有用于日(直径)月(mes)和年(anyo)的三个输入以及一个发送按钮(#btn_entrar)。 它可以在Firefox,Safari和Explorer上完美运行,但是在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       
    } 
}); 

任何提示或帮助将不胜感激。

这可能是语言环境问题。 代替使用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 - 1Date(year, month, day)构造函数从0到11而不是1到12的Date(year, month, day)数!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM