JS内使用FOR循环内嵌套了IF语句FOR循环不能正常循环了

lvhao0083 2008-02-28 10:48:31
做了一个按照设定数字上传文件数量的JS后写了下面的判断FILE是否为空的循环
出现问题是没有正确循环,我在里面alert了i只能出来1后面就不循环了
于是FILE1为空的话能够发现,但是FILE1不为空后面为空就提交过去了
给后面那句alert(window.TaskAdd.upcount2.value);是显示设定的上传文件的FILE的数量。
我设定为4的时候这里也显示为4了,所以不进IF的情况下后面也是执行了的,但是就是没有循环起来。
for(i=1; i<=window.TaskAdd.upcount2.value; i++)
{

alert(i);

var chk=document.getElementById("file"+i).value;

var chk1=document.getElementById("file"+i);
if(isEmpty(chk))
{alert("请选择你要上传的文件。");
chk1.focus();
return false;
}
alert(window.TaskAdd.upcount2.value);
}
...全文
1973 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvhao0083 2008-02-28
  • 打赏
  • 举报
回复
哦。我第一次问问题,不明白规矩。
等我整理下。
几百行代码放那里问别人的话也太乱了。
  • 打赏
  • 举报
回复
你把相关的组合一起,发出来
直接复制你上面代码有错
lvhao0083 2008-02-28
  • 打赏
  • 举报
回复
不是怕人知道代码。是外面很多无关的东西。
本身这些代码也都是我在网上找来修改的有什么怕人知道的。
TaskAdd就是外面FORM的名字啊
  • 打赏
  • 举报
回复
怕别人知道代码就不要问了!!
  • 打赏
  • 举报
回复
window.TaskAdd.upcount2
你贴就帖全的

帖了一半都没看到你变量的地方
lvhao0083 2008-02-28
  • 打赏
  • 举报
回复
我自己判断应该是FOR和IF有冲突,当把IF注释掉的时候是能够正常循环的。
把if里面的内容注释掉还是这个问题。
lvhao0083 2008-02-28
  • 打赏
  • 举报
回复
function setid2()
{
str='<br>';
if(!window.TaskAdd.upcount2.value)
window.TaskAdd.upcount2.value=1;
for(i=1; i<=window.TaskAdd.upcount2.value; i++){
str+='文件'+i+':<input type="file" name=file'+i+' style="width:400" class="tx1" value="" size="20" onChange="ck_case('+i+',\'jsp\');"><br>';
}
window.upid2.innerHTML=str+'<br>';
}
这短是按照设定的数字生成FILE的。
需要上传的文件个数
<tr><td> <input type="text" name="upcount2" class="tx" value="1" size="20" onChange="setid2();">
<input type="button" name="Button" class="button" onclick="setid2();" value="· 设定 ·" class="tx1"> </td>

</tr>
<tr>
<td colspan="2" id="upid2">
<p align="left"> 文件1:
<input type="file" name="file1" value="" size="20" onChange="ck_case(1,'jsp');">
</td>
这段是设定上传文件个数的。
  • 打赏
  • 举报
回复
代码都帖出来看下
lvhao0083 2008-02-28
  • 打赏
  • 举报
回复
我前面都说了在不进IF的情况下不循环。
softforce 2008-02-28
  • 打赏
  • 举报
回复
如果if的条件成立,你都return false;了,当然就跳出了
lvhao0083 2008-02-28
  • 打赏
  • 举报
回复
for(i=1; i <=window.TaskAdd.upcount2.value; i++)
改为:
for(var i=1,len=parseInt(window.TaskAdd.upcount2.value);i <=len;i++)


这个可用。功能实现了。
但是为什么呢?赋值给另外一个变量就能用了。
lvhao0083 2008-02-28
  • 打赏
  • 举报
回复
isEmpty不是宏啊。。。是个固有的函数吧。我就是判断CHK是不是空啊。
我在网上查的就是直接用这个函数啊
liuhongxing1908901 2008-02-28
  • 打赏
  • 举报
回复
if(isEmpty(chk)) isEmpty在哪里?
liuhongxing1908901 2008-02-28
  • 打赏
  • 举报
回复
for(i=1; i <=window.TaskAdd.upcount2.value; i++)
改为:
for(var i=1,len=parseInt(window.TaskAdd.upcount2.value);i <=len;i++)
lvhao0083 2008-02-28
  • 打赏
  • 举报
回复
哦。
alery(chk);这个打错了
lvhao0083 2008-02-28
  • 打赏
  • 举报
回复
唉。越弄越乱了。几个JS都不管用了老出未知的运行时错误
下面是我整理出来的一段可以运行了。。。。。。。虽然功能都实现不了了
可以看出的是把FOR里面那段IF注释掉的话能够ALERT 1,2,3,4出来吧IF留着就只能ALERT1
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</style>
</head>

<body>

<form name=TaskAdd>

 
文件1: <input type="file" name="file1" value="" size="20" onChange="ck_case(1,'jsp');"> <br>
文件2: <input type="file" name="file2" value="" size="20" onChange="ck_case(2,'jsp');"> <br>
文件3: <input type="file" name="file3" value="" size="20" onChange="ck_case(3,'jsp');"> <br>
文件4:<input type="file" name="file4" value="" size="20" onChange="ck_case(4,'jsp');"> <br>

<input type="button" onclick="docheck();" value="· 检查 ·" >

</form>
<SCRIPT LANGUAGE="JavaScript">
function ck_case(num,_case){


var oInput=document.TaskAdd.file1;
var _obj


_obj=oInput[num-1];


var path=_obj.value.toLowerCase();

var pos=path.lastIndexOf(".");
var filecase=path.substr(pos+1,_case.length);

if (filecase==_case)
{
alert("您不能上传.JSP文件");
_obj.select();
document.execCommand('delete')
}
}


function docheck() {

for(i=1; i<=4; i++)
{

alert(i);
var chk=document.getElementById("file"+i).value;
var chk1=document.getElementById("file"+i);
alery(chk);
if(isEmpty(chk))
{
alert("请选择你要上传的文件。");
chk1.focus();
return false;
}

}



}


</SCRIPT>

</body>
</html>
目的: 掌握什么是 JavaScript 如何将 JavaScript 嵌入到 HTML 中 网页中嵌入脚本有两种方式:使用