JavaScript无法在Mozilla中运行

时间:2010-05-16 19:49:15

标签: javascript

我在html页面中添加了一些javascript用于输入validation.same页面在IE和Chrome中工作正常但在 mozila 中它不起作用。问题是当用户输入无效数据时它应该显示警告信息框,当用户点击确定时,它应返回 false 以形成... 但是 mozila不等待对于警告框,它只显示警告框5-6秒,然后转到 form action =“nextpage.php”中定义的下一页

 function validate_form(thisform) 
    {
    with (thisform) 
        {
        if (validate_required(oldpassword, "<b>Error: </b>Please enter the Old Password!") == false)
        { changeColor("oldpassword"); return false; }

        else if (valid_length(newpassword, "<b>Error: </b>Please enter the New Password!!") == false)
        {newpassword.value=""; changeColor("newpassword"); return false; }

        else if (valid_length(cnfpassword, "<b>Error: </b>Please enter the Confirm Password!!") == false)
        {cnfpassword.value=""; changeColor("cnfpassword"); return false; }

        else if (document.getElementById('newpassword').value != document.getElementById('cnfpassword').value)
        {changeColor("newpassword");cool.error("<b>Error: </b>Passwords entered are not same!"); 
        newpassword.value="";cnfpassword.value="";return false;}

    }
}function validate_required(field, alerttxt) 
    {
    with (field) 
        {
        if (value == null || value == "") 
            {
           cool.error(alerttxt);return false;
            }
        else 
            {
            return true;
            }
        }
    }

cool.error 只是CSS和Js for alert box。我的代码天气问题在某些浏览器设置中没有任何问题。是的所以???因为它在 IE Chrome 中工作正常。

2 个答案:

答案 0 :(得分:4)

您正在使用非标准的仅IE行为,为每个具有ID的元素创建全局变量。

要修复它,请为您使用的每个元素添加一个全局变量:

var oldpassword = document.getElementById("oldpassword");

此外,您永远不会使用Javascript的with阻止 它与VB的with块非常不同,除非您真正了解其缺陷和缺点,否则不应使用它。它也会减慢你的代码。

答案 1 :(得分:0)

您还可以使用一些JavaScript库来解决浏览器问题。我正在支持jQuery。