我遇到了这段代码的问题,如果我添加了我已注释掉的行,表单似乎会转到我已经链接的页面而不进行验证。但如果我不包含它,那么验证工作正常,警告框显示消息。我不明白它不起作用的原因。
function validateform(){
var flag=0;
var uname=document.forms["f1"]["uname"].value;
var pass=document.forms["f1"]["pass"].value;
var fname=document.forms["f1"]["fname"].value;
var lname=document.forms["f1"]["lname"].value;
var phone=document.forms["f1"]["phone"].value;
var email=document.forms["f1"]["email"].value;
var err="";
if(uname==""||uname==null) {
err+="Username cannot be left blank\n";
//document.getElementsById("uname").style.backgroundColor="red";
flag=1;
}
if(pass==""||pass==null){
err+="Password cannot be left blank\n";
flag=1;
}
if(email==""||email==null){
err+="Email cannot be left blank\n";
flag=1;
}
if(flag==0){
return true;
}else{
alert(err);
return false;
}
}
答案 0 :(得分:2)
你犯了一个错字。
是document.getElementById('id')
而不是document.getElementsById
它有一个单独的元素,因为ids是唯一的,适用于单个元素。
由于不存在重复的ID,因此它也被命名为getElementById
。
答案 1 :(得分:2)
id是唯一标识符。给定id只能有一个元素。因此,通过id获取元素的方法不是复数。 getElementById
,而非getElementsById
。
答案 2 :(得分:0)
getElementsByName
和2. getElementById
。
因为允许多个具有相同名称的HTML元素
因为ID
是唯一的,无法分配给多个HTML元素。
这就是为什么:getElementsById
和getElementByName
错误
答案 3 :(得分:0)
请尝试更正函数名称document.getElementById,而不是元素 的document.getElementById(" UNAME&#34)。style.bacgroundColor ="红色&#34 ;;
答案 4 :(得分:0)
我认为你想要getElementById不是getElementsById(而不是elementS中的S)。根据您使用的浏览器以及启用的内容,getElementsById将会正常失败并且永远不会让您知道它或它将显示错误。