【问题标题】:javascript input validation - Unable to validate when all fields are emptyjavascript输入验证 - 当所有字段为空时无法验证
【发布时间】:2015-08-27 23:29:40
【问题描述】:

作为 javascript 的新手,我正在尝试创建一个脚本来验证注册表单。简单的事情,如果 1 字段为空,则抛出相应的消息。我按照互联网上的教程成功管理它,它按我想要的方式工作,当 1 个字段为空时数据库不会更新。

但是有一个问题。当所有字段为空时,脚本不知何故未能注意到这一点并完美地进行注册。

我的脚本如下:

function validateForm()
{
var a=document.forms["Registration_Form"]["fname"].value;
var b=document.forms["Registration_Form"]["lname"].value;
var c=document.forms["Registration_Form"]["email"].value;
var d=document.forms["Registration_Form"]["username"].value;
var e=document.forms["Registration_Form"]["password"].value;

if ((a==null || a=="") && (b==null || b=="") && (c==null || c=="") && (d==null || d=="") && (e==null || e==""))
  {
  alert("All Field must be filled out");
  return false;
  }
if (a==null || a=="")
  {
  alert("First name must be filled out");
  return false;
  }
if (b==null || b=="")
  {
  alert("Last name must be filled out");
  return false;
  }
if (c==null || c=="")
  {
  alert("email adress must be filled out");
  return false;
  }
if (d==null || d=="")
  {
  alert("Username must be filled out");
  return false;
  }
if (e==null || e=="")
  {
  alert("Password must be filled out");
  return false;
  }
}

这是钻入我的大脑,让我疯狂好几个小时。 当一个字段完成而其余字段丢失时,我会收到第一个缺失字段的相应消息并且一切正常,注册被阻止。

但是当所有都丢失时,它就不会发生,注册成功并输入我数据库中的所有空白字段。

我不明白,就在这里,对吧?

if ((a==null || a=="") && (b==null || b=="") && (c==null || c=="") && (d==null || d=="") && (e==null || e==""))
  {
  alert("All Field must be filled out");
  return false;
  }

如果 fname 为空且 lname 为空且 email 为空且用户名为空且密码为空,则警告并返回 false。 我不明白,这么简单的事情怎么会有问题?我错过了什么?

即使这条线不存在,脚本不应该被困在剩下的只有 1 个子句的 if 中并在那里给出 false 吗?

【问题讨论】:

    标签: javascript validation


    【解决方案1】:

    我会像这样try。您不需要一次检查所有内容...

    function validateForm()
    {
      var a=document.forms["Registration_Form"]["fname"].value;
      var b=document.forms["Registration_Form"]["lname"].value;
      var c=document.forms["Registration_Form"]["email"].value;
      var d=document.forms["Registration_Form"]["username"].value;
      var e=document.forms["Registration_Form"]["password"].value;
    
      try {
        if ((a === '') || (a === null)) {
          throw new Error('First name must be filled out');
        }
    
        if ((b === '') || (b === null)) {
          throw new Error('Last name must be filled out');
        }
    
        if ((c === '') || (c === null)) {
          throw new Error('email adress must be filled out');
        }
    
        if ((d === '') || (d === null)) {
          throw new Error('Username must be filled out');
        }
    
        if ((e === '') || (e === null)) {
          throw new Error('Password must be filled out');
        }
    
        return true;
      }
      catch (formError) {
        alert(formError.message);
        return false;
      }
    }
    

    【讨论】:

    • 哦,可以了,非常感谢。我想我一次检查它们的方式搞砸了?
    猜你喜欢
    • 2011-04-25
    • 2020-06-20
    • 1970-01-01
    • 2012-02-20
    • 2017-09-11
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多