JS内使用FOR循环内嵌套了IF语句FOR循环不能正常循环了 如果if的条件成立,你都return false;了,当然就跳出了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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>这段是设定上传文件个数的。 我自己判断应该是FOR和IF有冲突,当把IF注释掉的时候是能够正常循环的。把if里面的内容注释掉还是这个问题。 window.TaskAdd.upcount2你贴就帖全的帖了一半都没看到你变量的地方 不是怕人知道代码。是外面很多无关的东西。本身这些代码也都是我在网上找来修改的有什么怕人知道的。TaskAdd就是外面FORM的名字啊 唉。越弄越乱了。几个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> 哦。alery(chk);这个打错了 for(i=1; i <=window.TaskAdd.upcount2.value; i++) 改为:for(var i=1,len=parseInt(window.TaskAdd.upcount2.value);i <=len;i++) if(isEmpty(chk)) isEmpty在哪里? isEmpty不是宏啊是个固有的函数吧。我就是判断CHK是不是空啊。我在网上查的就是直接用这个函数啊 for(i=1; i <=window.TaskAdd.upcount2.value; i++) 改为: for(var i=1,len=parseInt(window.TaskAdd.upcount2.value);i <=len;i++) 这个可用。功能实现了。但是为什么呢?赋值给另外一个变量就能用了。 求js树,每个节点可以带复选框的 想给连接加一个target=_blank 打造第一私活群,请大家相互转告,踊跃加入,群号17249308 发现一个网站的登录模式非常的好用,请教如何可以要做成这样的话 怎么样去掉页面里的iFrmae的边框线 Jquery用json调用wcf服务的问题 禁止查看源代码的角本,谢谢! 怎么样在iframe里取得父窗口里层的值,然后改变iframe里的值? CSDN左框架中的动态菜单是怎么实现 怎么能让一个层保持在一定的位置不变? 关于编辑器的js取值问题 ajax的问题
{
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>
这段是设定上传文件个数的。
把if里面的内容注释掉还是这个问题。
你贴就帖全的帖了一半都没看到你变量的地方
本身这些代码也都是我在网上找来修改的有什么怕人知道的。
TaskAdd就是外面FORM的名字啊
下面是我整理出来的一段可以运行了。虽然功能都实现不了了
可以看出的是把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>
alery(chk);这个打错了
改为:
for(var i=1,len=parseInt(window.TaskAdd.upcount2.value);i <=len;i++)
我在网上查的就是直接用这个函数啊
改为:
for(var i=1,len=parseInt(window.TaskAdd.upcount2.value);i <=len;i++)
这个可用。功能实现了。
但是为什么呢?赋值给另外一个变量就能用了。