用于显示html标签的JavaScript if-else语句

用于显示html标签的JavaScript if-else语句,javascript,jquery,html,Javascript,Jquery,Html,我有一个登录表单,如果日志不正确,我将尝试显示一条错误消息 比如, 如果(电子邮件和密码匹配),则将validUser设置为true 如果validUser等于true,则重定向到主页 否则将它们重定向回登录并显示3条消息中的一条 信息包括: 如果电子邮件和密码都不正确,则“登录失败” “密码不正确”,如果只是密码错误 “电子邮件不正确”,如果只是电子邮件错误 有可能有一个循环来完成所有这些吗?我想不出来 也尝试类似的方法: if (validUser==false) { $("message

我有一个登录表单,如果日志不正确,我将尝试显示一条错误消息

比如,

如果(电子邮件和密码匹配),则将validUser设置为true

如果validUser等于true,则重定向到主页

否则将它们重定向回登录并显示3条消息中的一条

信息包括:

如果电子邮件和密码都不正确,则“登录失败”

“密码不正确”,如果只是密码错误

“电子邮件不正确”,如果只是电子邮件错误

有可能有一个循环来完成所有这些吗?我想不出来

也尝试类似的方法:

 if (validUser==false)
{
$("message").show();
}

else if ( ..........)
{
$("passwordmessage").show();
}
我还想在页面上显示一条消息,到目前为止,我使用的是:

document.getElementById('message').style.display = ""
这是我的密码:

那么,如何使用if语句来实现这一点,如何使用javascript或jquery正确显示html页面元素呢

请询问您是否需要更多代码或要求澄清

这些是我的用户详细信息

var USERS = {
    users: []
};

function User(type, email, password) {
    this.type = type;
    this.email = email;
    this.password = password;
}

var A = new User("rep", "a@a.com", "a");
USERS.users.push(A);

var B = new User("rep", "b@b.com", "b");
USERS.users.push(B);

var C = new User("customer", "c@c.com", "c");
USERS.users.push(C);

var D = new User("grower", "d@d.com", "d");
USERS.users.push(D);

module.exports = USERS;

在这种情况下,你不会有3个条件。您将检查电子邮件可用性和密码匹配情况。如果有人失败,您可以显示消息。我无法测试您的代码,但这将是逻辑,我假设用户。用户[x]。电子邮件是来自数据库的电子邮件列表。如果是的话,很抱歉这是一个糟糕的做法

  validUser = false;
  emailAvailable = false;
  passwordIncorrect = false;
    for (var x in USERS.users) {
         if(!emailAvailable && emailLog === USERS.users[x].email){
                 emailAvailable = true;
           } //Checks whether email is available.
         if(emailAvailable && passwordLog === USERS.users[x].password){
                 passwordIncorrect = true;
                 break;
           } //Checks whether the password is correct for that email.


    } // end of for



     if(!emailAvailable){
    console.log("Email is incorrect");
   }
       else if(emailAvailable && !passwordIncorrect){
console.log("Password is incorrect");}
        else{
             validUser = true;
             console.log("Valid User");
}

if(validUser){
//redirect
}

我认为我的方式值得一试:

第一:创建Javascriptobject:

 function ruleToCheck(errorRule, errorMsgContainer)
 {
  this.errorCondition = errorRule;
  this.errorMessage = errorMsgContainer;
 }
之后,创建一个数组并用规则填充它:

 var rulesList = new Array();
 rulesList.push(new ruleToCheck("validUser === true", "message"));
 ...
然后在阵列中循环:

 var rulesListLength = rulesList.length;
 var index = 0;
 while (index < rulesListLength)
 {
   index++;
   ...
 }
希望它对你有帮助,或者至少引导你走上正确的方向。
顺便说一句,请注意对您的问题的评论。

您返回客户端上用户和密码的完整列表?如果/否则不是“循环”。我不会在登录失败时将用户重定向到任何地方。您应该只显示登录失败的消息。即,用户和/或密码不正确。您希望避免透露太多有关登录失败的信息。您允许某人通过每次尝试获得有关系统的更多信息。我可以强制一个有效的用户,然后根据您的逻辑开始处理密码。您应该将“身份验证”创建为一个单独的函数,并返回true或false。然后根据结果将消息处理给用户或在sys中重定向。@epascarello对不起,我不确定我是否理解您的意思mean@CBroe对不起,我提交问题时没有意识到这一点。这是一份声明,对吗?谢谢。这使我的问题更加清楚,所以希望我能够正确地实施这一点。您将如何从数据阵列访问电子邮件?除用户外,我找不到其他对我有效的方法。用户[x]。电子邮件如果您认为我的回答有用,请将其标记为有用。感谢您的回复。我已将此方法用于工作并打印到控制台,但如何将输出消息打印到网页?请删除控制台并使用此网页指导您在网页中打印消息。
 if (eval(rulesList[index].errorCondition))
 {
     $("#"+rulesList[index].errorMessage).show();
     break;
     //If 'break does not work, use 'index = rulesListLength'
 }