Javascript 验证由于 documents.getElementsById() 而不起作用

Javascript validation doesn't work because of documents.getElementsById()

本文关键字:不起作用 getElementsById documents 验证 Javascript      更新时间:2023-09-26

我在使用此代码时遇到问题,如果我添加已注释掉的行,表单似乎无需经过验证即可转到我链接的页面。但是,如果我不包含它,则验证工作正常,警报框显示消息。我不明白它不起作用的原因。

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

你打错了字。

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

它获得单个元素,因为 id 是唯一的并且用于单个元素。

它也被命名为getElementById,因为不能有重复的 id。

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

  1. getElementsByName和 2. getElementById .

    1. 因为允许多个同名的 HTML 元素

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

这就是为什么:getElementsByIdgetElementByName是错误的

请尝试此操作,更正函数名称 document.getElementById 它不是元素 document.getElementById("uname").style.bacgroundColor="red";

我想你想要getElementById而不是getElementsById(不是elementS中的S)。 根据您使用的浏览器和打开的内容,getElementsById 将正常失败,并且永远不会通知您,否则将显示错误。