Javascript java脚本在mozila中不起作用

Javascript java脚本在mozila中不起作用,javascript,Javascript,我在html页面中添加了一些javascript以进行输入验证。同一页面在IE和chrome中工作正常,但在mozila中它不工作。问题是当用户输入无效数据时,它应该显示警报消息框,当用户单击OK时,它应该返回false表单…但是mozila没有等待警报框它只会显示警报框5-6秒,然后转到表单action=“nextpage.php”中定义的下一页 function validate_form(thisform) { with (thisform) {

我在html页面中添加了一些javascript以进行输入验证。同一页面在IE和chrome中工作正常,但在mozila中它不工作。问题是当用户输入无效数据时,它应该显示警报消息框,当用户单击OK时,它应该返回false表单…但是mozila没有等待警报框它只会显示警报框5-6秒,然后转到表单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;
            }
        }
    }
函数验证表单(此表单)
{
随附(此表格)
{
如果(需要验证(旧密码,“错误:请输入旧密码!”)==false)
{changeColor(“oldpassword”);返回false;}
else if(有效长度(newpassword,“错误:请输入新密码!!”)==false)
{newpassword.value=”“;changeColor(“newpassword”);返回false;}
else if(有效长度(cnfpassword,“错误:请输入确认密码!!”)==false)
{cnfpassword.value=”“;changeColor(“cnfpassword”);返回false;}
else if(document.getElementById('newpassword').value!=document.getElementById('cnfpassword').value)
{changeColor(“newpassword”);酷。错误(“错误:输入的密码不相同!”);
newpassword.value=“”;cnfpassword.value=“”;返回false;}
}
}需要函数验证(字段,alerttxt)
{
带(字段)
{
如果(值==null | |值==“”)
{
cool.error(alerttxt);返回false;
}
其他的
{
返回true;
}
}
}

酷。错误只不过是警报框的CSS nd Js。我想我的代码中没有任何问题天气问题是在某些浏览器设置中。是这样吗???因为它在IEChrome

中运行良好,所以您使用的是一种非标准的仅限IE的行为,它为每个ID元素创建全局变量

要解决此问题,请为您使用的每个元素添加一个全局变量:

var oldpassword = document.getElementById("oldpassword");
此外,决不能将Javascript的
块一起使用。

它与VB的带有
块的
非常不同,除非您真正了解它的缺陷和缺点,否则不应使用它。这也会降低代码的速度。

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

作为这里的一般说明,永远不要假设错误不在代码中,99.9999%的时间,至少在已建立的平台上,它是您的代码,假设相反的情况只会浪费时间寻找原因。作为另一种情况,您可能需要查看一些jquery验证插件,这样可以节省一些时间添加行,如
var oldpassword=document.getElementById(“oldpassword”)在Javascript中使用的每个HTML元素的函数之外。或者
myformobject.elements.oldpassword
如果您只使用名称。但是使用ID更容易。像这样???-函数validate_form(thisform){var oldpassword=document.getElementById(“oldpassword”);var newpassword=document.getElementById(“newpassword”);var cnfpassword=document.getElementById(“cnfpassword”);if(validate_required(oldpassword),“错误:请输入旧密码!”)==false){changeColor(“旧密码”);返回false;}否则如果(有效长度(新密码,“错误:请输入新密码!!”)==false){newpassword.value=“”;changeColor(“新密码”);返回false;}jquery可以作为javascript用于验证吗?