JS如何循环CHECK?

来源:百度知道 编辑:UC知道 时间:2024/06/06 11:16:40
一个网页,提交姓名,性别和EMAIL,给出了5组共15个文本框,分别命名为:"name"+i,"sex"+i,"email"+i
其中(i=1,i<=5,i++)
现在我要进行一个判断,5组并不需要都填,但是填了EMAIL,就必须填写姓名和性别,否则提交时报错要求填写;如果一组都没有填,提交报错,至少选一项。我尝试用for里套if,可是MS这样不行,简单写下我的思路:

function register()
{
for(i=1,i<=5,i++)
{
if(document.getElementById("email"+i).value != "")
{
if(document.getElementById("name"+i).value !="" && document.getElementById("sex"+i).value != "")
{window.form.submit();}
else{window.alert("xxxx");return false;}
else{window.alert("zzzz");return false;}
}
}
大概就是这个意思吧。。。恩,我知道存在一个问题,就是这样子除非所有email都非空,否则还是报错,可是现在是根本不报错,什么错都不报,所以想请哪位达人看看到底怎么回事,是不是JS不支持for循环里加判断。。。最好能帮帮我,给一个解决方案,谢谢了。。。分不多,麻烦达人们帮帮忙了。。。谢谢!
最后一个else放错地方了。。

我把你的程序逻辑修改如下,加上了注释:

function register()
{
check_ok=1;//先设置逻辑检查结果为1,循环检查时如果发现一个错误即设置为0
check_null=1;//先设置所有栏目全空为1,循环检查时如果发现一个非空即设置为0
for(i=1,i<=5,i++)
{
if(document.getElementById("email"+i).value != "")
{
check_null=0;//一旦有一个EMAIL有值即设置全“空为”0
if(document.getElementById("name"+i).value =="" || document.getElementById("sex"+i).value == "") check_ok=0;//一旦非空的EMAIL里面出现了性别或者姓名为空,则设置“正确”为0
}
//最后,如果“全空”为0,并且“正确”为1,则正确提交
if (check_null==0 && check_ok==1) {window.form.submit();}
else{window.alert("xxxx");return false;}
}