Javascript验证不需要';由于文档的原因,无法工作。getElementsById()

Javascript验证不需要';由于文档的原因,无法工作。getElementsById(),javascript,validation,Javascript,Validation,我在这段代码中遇到了问题,如果我添加了我注释掉的行,表单似乎会转到我在操作中链接的页面,而没有进行验证。但是如果我不包括它,验证工作正常,警报框会显示消息。我不明白它不工作的原因 function validateform(){ var flag=0; var uname=document.forms["f1"]["uname"].value; var pass=document.forms["f1"]["pass"].value; var

我在这段代码中遇到了问题,如果我添加了我注释掉的行,表单似乎会转到我在操作中链接的页面,而没有进行验证。但是如果我不包括它,验证工作正常,警报框会显示消息。我不明白它不工作的原因

 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。

您输入了一个错误

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

它得到一个元素,因为ID是唯一的,并且是针对单个元素的

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

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

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

  • getElementsByName
    和2<代码>getElementById

  • 因为允许使用相同名称的多个HTML元素

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

  • 这就是为什么:
    getElementsById
    getElementByName
    是错误的

  • getElementsByName
    和2<代码>getElementById

  • 因为允许使用相同名称的多个HTML元素

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


  • 这就是为什么:
    getElementsById
    getElementByName
    是错误的

    请尝试更正函数名文档。getElementById不是它的元素
    document.getElementById(“uname”).style.bacgroundColor=“红色”

    请尝试更正函数名document.getElementById不是它的元素

    document.getElementById(“uname”).style.bacgroundColor=“红色”

    我认为您想要的是getElementById而不是getElementsById(不是元素中的S)。取决于您使用的浏览器和您打开的getElementsById将正常失败,并且永远不会让您知道,否则将显示错误。

    我认为您希望getElementById而不是getElementsById(而不是元素中的S)。根据您正在使用的浏览器以及您在getElementsById上打开的浏览器,它将正常失败,并且永远不会让您知道,否则它将显示错误。

    是否检查了浏览器控制台中的错误?如果没有具有该id值的元素,该行将抛出异常,函数将中止。名为“uname”的
    元素需要一个带有该值的“name”和“id”属性。事实证明,我不应该使用复数,因为id是唯一的,谢谢。您是否检查了浏览器控制台中的错误?如果没有具有该id值的元素,该行将抛出异常,函数将中止。名为“uname”的
    元素需要一个带有该值的“name”和“id”属性。事实证明,由于id是唯一的,所以我不应该使用复数形式,谢谢你的提问。如果我使用getElementsByName,我是对的,不是吗(因为名称不是唯一的)?但这给了我与上面相同的错误。getElementsByName为您提供了一个节点列表。您可以尝试以下操作:
    document.getElementsByName('namehere')[0]
    是的,这很有效,我想我可以不指定[0]就离开因为我只有一个字段使用这个名称,但我错了。一个编程新手快速问题的成功案例如果我使用getElementsByName,我是对的,不是吗(因为名称不是唯一的)?但是这给了我与上面相同的错误。getElementsByName给了你一个节点列表。你可以试试这个:
    document.getElementsByName('namehere')[0]
    是的,这很有效,我想我可以不用指定[0]就可以逃脱,因为我只有一个字段有这个名称,但我错了。一个编程新手的成功故事我使用了getElementsByName()但这也会导致跳过验证。似乎只有getelementbyid起作用。@user3204064
    getElementsByName
    返回节点列表顺便说一句。您应该根据我使用的getElementsByName()更改检查,但这也会导致跳过验证。似乎只有getelementbyid起作用。@user3204064
    getElementsByName
    返回节点列表顺便说一句。您应该相应地更改您的检查