我在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 中工作正常。
答案 0 :(得分:4)
您正在使用非标准的仅IE行为,为每个具有ID的元素创建全局变量。
要修复它,请为您使用的每个元素添加一个全局变量:
var oldpassword = document.getElementById("oldpassword");
此外,您永远不会使用Javascript的with
阻止
它与VB的with
块非常不同,除非您真正了解其缺陷和缺点,否则不应使用它。它也会减慢你的代码。
答案 1 :(得分:0)
您还可以使用一些JavaScript库来解决浏览器问题。我正在支持jQuery。