表单中已经存在的控件的名称可以动态更改吗?

moustache666 2006-11-07 09:22:44
<%
function(){
if(document.t1.value==""&&document.t2.value=="")
{alert("Error!")
reture false
}
return true
}
%>
<form name=test method="POST" action="confirm.asp" OnSubmit="return CheckFields()">
<p> </p>
<p> </p>
<p> </p>
<p><input type="text" name="T1" size="20"></p>
<p><input type="text" name="T2" size="20"> </p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p>
</form>

在以上的代码中提供了对t1和t2的验证,但是如果form中的文本框是动态生成的,依次是t3,t4...或者更多一直到tn,该怎么去验证呢? 控件的名称可以在vbscript中动态改变吗?不能的话该怎么解决呢?谢谢.
...全文
101 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
SanndyTian 2006-11-07
  • 打赏
  • 举报
回复
这个非常好解决.
在JavaScript中使用eval进行处理.我们模拟一种比较简单的情况:
你现在需要CHECK 20个控见,也就是你说的t1~t20:
function CheckFields(){
var loopi;
for(loopi=1;loopi<=20;loopi++){
if(eval("document.test.T" + loopi) == ""){
alert("Error!");
return false;
}
return true;
}
如果是比较复杂的动态情况.比如,你的控件数目可能是你数据库中某表的记录条数,那么首先要HIDDEN一个控件(COUNTER)记录这个数目.代码如下:
function CheckFields(){
var loopi;
var intCounter;
intCounter = parseFloat(document.test.COUNTER.value);
for(loopi=1;loopi<=intCounter ;loopi++){
if(eval("document.test.T" + loopi) == ""){
alert("Error!");
return false;
}
return true;
}
小码 2006-11-07
  • 打赏
  • 举报
回复
没试过改名,一般来说name/id都是Read Only的。你可以试着去判断元素是否存在,或者是否有值,从而实现同样的效果。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧