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