Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表单验证和数组,如何收缩多个if和else语句?_Javascript_Arrays_Loops_If Statement - Fatal编程技术网

Javascript 表单验证和数组,如何收缩多个if和else语句?

Javascript 表单验证和数组,如何收缩多个if和else语句?,javascript,arrays,loops,if-statement,Javascript,Arrays,Loops,If Statement,我正在用JavaScript验证注册表。我决定添加红色文本样式来识别错误的输入。 我有两个数组:fail[]包含每个失败输入的消息,lblcol[]具有不同的标签id var fail = new Array(); fail[0] = validateNickname(form.form_nickname.value); fail[1] = validatePassword(form.form_password.value); fail[2] = validateFirstname(f

我正在用JavaScript验证注册表。我决定添加红色文本样式来识别错误的输入。 我有两个数组:fail[]包含每个失败输入的消息,lblcol[]具有不同的标签id

 var fail = new Array();

 fail[0] = validateNickname(form.form_nickname.value);
 fail[1] = validatePassword(form.form_password.value);
 fail[2] = validateFirstname(form.form_firstname.value);
 fail[3] = validateLastname(form.form_lastname.value);
 fail[4] = validateEmail(form.form_email.value);

var lblcol = document.querySelectorAll("#lbl0, #lbl1, #lbl2, #lbl3, #lbl4");

if (fail[0]!="")
lblcol[0].style.color="red";
else 
lblcol[0].style.color="black";
if (fail[1]!="")
lblcol[1].style.color="red";
else 
lblcol[1].style.color="black";
if (fail[2]!="")
lblcol[2].style.color="red";
else
lblcol[2].style.color="black";  
if (fail[3]!="")
lblcol[3].style.color="red";
else
lblcol[3].style.color="black";
if (fail[4]!="")
lblcol[4].style.color="red";
else 
lblcol[4].style.color="black";  

有没有更快的方法来添加这种效果

您可以在一个简单的循环中完成此操作。循环将遍历数组中的每个值,然后执行此测试。我还将if-else语句更改为一个语句。下面是代码的样子:

for (var i=0;i<fail.length;i++) {
    lblcol[i].style.color = fail[i]!="" ? "red" : "black";
}

这个循环要做的是首先通过代码var i=0将变量i设置为0;,然后测试一下我是否需要你的解释。这非常有效。@ITLIKEBOOM如果这是您要查找的答案,请单击我的答案内容左侧的复选标记,将其标记为已接受。这将清楚地表明这个答案已经得到了回答,它还将表明这个答案为您解决了问题,以防有人在这一页上寻找相同的答案。