由于documents.getElementById(),Javascript验证不起作用

时间:2014-04-05 16:18:20

标签: javascript validation

我遇到了这段代码的问题,如果我添加了我已注释掉的行,表单似乎会转到我已经链接的页面而不进行验证。但如果我不包含它,那么验证工作正常,警告框显示消息。我不明白它不起作用的原因。

 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;
      }     
  }

5 个答案:

答案 0 :(得分:2)

你犯了一个错字。

document.getElementById('id')而不是document.getElementsById

它有一个单独的元素,因为ids是唯一的,适用于单个元素。

由于不存在重复的ID,因此它也被命名为getElementById

答案 1 :(得分:2)

id是唯一标识符。给定id只能有一个元素。因此,通过id获取元素的方法不是复数。 getElementById,而非getElementsById

答案 2 :(得分:0)

  1. getElementsByName和2. getElementById

    1. 因为允许多个具有相同名称的HTML元素

    2. 因为ID是唯一的,无法分配给多个HTML元素。

  2. 这就是为什么:getElementsByIdgetElementByName错误

答案 3 :(得分:0)

请尝试更正函数名称document.getElementById,而不是元素     的document.getElementById(" UNAME&#34)。style.bacgroundColor ="红色&#34 ;;

答案 4 :(得分:0)

我认为你想要getElementById不是getElementsById(而不是elementS中的S)。根据您使用的浏览器以及启用的内容,getElementsById将会正常失败并且永远不会让您知道它或它将显示错误。