如何用for循环遍历text控件,控件name是2维数组表示?

零基础学编程by学哥 IT总监  2001-06-19 02:38:00
共有text控件24行,5列.
name是
ptt0101,ptt0102,ptt0103,ptt0104,ptt0105
ptt0201,ptt0202,ptt0203,ptt0204,ptt0205
......
ptt2401,ptt2402,ptt2403,ptt2404,ptt2405
要在javascript中遍历检查每个text值是否是数字或者空白.
请高手指点.
...全文
143 点赞 收藏 15
写回复
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
知道了是%,搞定谢谢,加分.
回复
请问求模运算是%还是mod?
回复
孟子E章 2001-06-19
完整代码:

<form name=mxh>
<input name=ptt0101 value="测试">
<input name=ptt0102>
<input name=ptt0103>
<input name=ptt0104>
<input name=ptt0105>
<input type=button value="检验数据" onclick="test()">
<input type=button value="检验数据" onclick="test()">
<input name=ptt0201 value="测试">
<input name=ptt0202>
<input type=button value="检验数据" onclick="test()">
<input name=ptt0203>
<input name=ptt0204>
<input name=ptt0205>

<input type=button value="检验数据" onclick="test()">
</form>

<script>

function test(){
for(var i=0;i<document.mxh.length;i++)
{
if((document.mxh.elements[i].type).toLowerCase()=="text")
{
if(document.mxh.elements[i].value=="")
{
alert("第 "+eval(i+1)+" 个表单元素为空啊,请输入数据!")
document.mxh.elements[i].focus()
return false;
}
}

}
alert("呵呵!过关了!:)")
}
</script>
回复
谢谢.
回复
孟子E章 2001-06-19
<form name=mxh>
<input name=ptt0101 value="测试">
<input name=ptt0102>
<input name=ptt0103>
<input name=ptt0104>
<input name=ptt0105>

<input name=ptt0201 value="测试">
<input name=ptt0202>
<input name=ptt0203>
<input name=ptt0204>
<input name=ptt0205>

<input type=button value="检验数据" onclick="test()">
</form>

<script>

function test(){
for(var i=0;i<document.mxh.length;i++)
{
if((document.mxh.elements[i].type).toLowerCase()=="text")
{
if(document.mxh.elements[i].value!="")
alert("第 "+eval(i+1)+" 个表单元素不为空啊 , 其余为空!!!!")
}
}
}
</script>

可以检验所有的text!
回复
<script>
for(var i=0;i<document.mxh.length;i++)
if (document.mxh.elements[i]==INPUTTEXT)
if(document.mxh.elements[i].value!="")
alert("第"+eval(i+1)+"个文本框不为空啊")
</script>

if (document.mxh.elements[i]==INPUTTEXT)
这里判断是否为text类型,怎么写?
回复
关键是中间还有其他控件.
回复
孟子E章 2001-06-19
你可以类似下面的办法,可以免去使用数组:

<form name=mxh>
<input name=ptt0101 value="测试">
<input name=ptt0102>
<input name=ptt0103>
<input name=ptt0104>
<input name=ptt0105>


<input name=ptt0201>
<input name=ptt0202>
<input name=ptt0203>
<input name=ptt0204>
<input name=ptt0205>


</form>

<script>
for(var i=0;i<document.mxh.length;i++)
if(document.mxh.elements[i].value!="")
alert("第"+eval(i+1)+"个文本框不为空啊")
</script>
回复
<script>
var b=0;
<%
for (int p=0;p<24;p++)
{
for (int j=0;j<5;j++)
{
out.println("b=document.form1.ptt"+p+j+".value;");
}
}
%>
</script>

是否这样?
回复
孟子E章 2001-06-19
顺便说一句,在javascript里可以不指定text名字的,用forms[i]来访问也很方便!
回复
孟子E章 2001-06-19
jsp是服务器端执行的,javascript是客户端生成的,var s=document.form1.ptt0101.value
在jsp里是可以用循环输出的!!验证的工作在客户端,与此无关,关键是你的变量名起的适合用循环来处理即可!
回复
net_lover(孟子E章) :
刚才一个问题已经给你加分了,希望这个问题你能帮我搞定,谢谢.
回复
我的text是用jsp动态生成的,要在javascript中检查输入数据的合法性.
关键是var s=document.form1.ptt0101.value这样写120行的话是可以的,但是能否在for循环中用一句做到呢?
回复
孟子E章 2001-06-19
<script>
ptt0101="text1value"
ptt0102=""
ptt0103="text3value"
ptt0104="text4value"
ptt0105="text5value"
var zu=new Array([ptt0101,ptt0102,ptt0103,ptt0104,ptt0105],["ptt0201","ptt0202","ptt0203","ptt0204","ptt0205"])
for(var i=0;i<2;i++)
{
for(var j=0;j<5;j++)
if(zu[i][j]=="")
alert("老天,数组["+i+"]["+j+"] 为空啊!!!")
}
</script>
回复
孟子E章 2001-06-19
简单的例子,异词类推!!!

<script>
ptt0101="text1value"
ptt0102="text2value"
ptt0103="text3value"
ptt0104="text4value"
ptt0105="text5value"
var zu=new Array([ptt0101,ptt0102,ptt0103,ptt0104,ptt0105],["ptt0201","ptt0202","ptt0203","ptt0204","ptt0205"])
for(var i=0;i<2;i++)
{
for(var j=0;j<5;j++)
alert(zu[i][j])
}
</script>
回复
发动态
发帖子
JavaScript
创建于2007-09-28

8.4w+

社区成员

Web 开发 JavaScript
申请成为版主
社区公告
暂无公告