根据条件生成的input 为什么在JS中取其value的时候是undefined

china2001ok 2006-02-14 03:10:59
我在页面中根据条件不同 生成不同的input 在提交的时候对页面上的input的value进行验证,即使在input中输入了内容,我alter的时候看到的值还是undefined,为什么?
...全文
603 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
china2001ok 2006-02-14
  • 打赏
  • 举报
回复
var str="frm."+param[0]+".value";
alert(eval(str));
这样就可以了 解决了 谢谢 呵呵
china2001ok 2006-02-14
  • 打赏
  • 举报
回复
不行啊 下面是我页面的源码
<table width=96% border=1 align='center' bordercolor='#999999' cellspacing='0' style="WORD-BREAK: break-all">
<script language='javascript'>param[0]='SRCADDR';</script>
<tr='td_' height=35>
<td class="td_" >发送IP:</td><td class="inputa" >
<input type=input name=SRCADDR id=SRCADDR >
</td>
</tr>
<script language='javascript'>param[1]='DESTADDR';</script>
<tr='td_' height=35>
<td class="td_" >接收IP:</td><td class="inputa" >
<input type=input name=DESTADDR id=DESTADDR >
</td>
</tr>
<script language='javascript'>param[2]='SRCPORT';</script>
<tr='td_' height=35>
<td class="td_" >源端口:</td><td class="inputa" >
<input type=input name=SRCPORT id=SRCPORT >
</td>
</tr>
<script language='javascript'>param[3]='DESTPORT';</script>
<tr='td_' height=35>
<td class="td_" >宿端口:</td><td class="inputa" >
<input type=input name=DESTPORT id=DESTPORT >
</td>
</tr>
<script language='javascript'>param[4]='SUBJECT';</script>
<tr='td_' height=35>
<td class="td_" >主题:</td><td class="inputa" >
<input type=input name=SUBJECT id=SUBJECT >
</td>
</tr>
<script language='javascript'>param[5]='ABSTRACT';</script>
<tr='td_' height=35>
<td class="td_" >摘要:</td><td class="inputa" >
<input type=input name=ABSTRACT id=ABSTRACT >
</td>
</tr>
<script language='javascript'>param[6]='ISREAD';</script>
<tr='td_' height=35>
<td class="td_" >是否阅读:</td><td class="inputa" >

<select name=ISREAD id=ISREAD>
<option value="-1">全部</option>
<option value="0">未读</option>
<option value="1">已读</option>
</select>
</td>
</tr>
<script language='javascript'>param[7]='FILESIZE';</script>
<tr='td_' height=35>
<td class="td_" >文件大小:</td><td class="inputa" >
<select name=com id=com>
<option value=1>>=</option>
<option value=2><=</option>
<option value=3>=</option>
</select>
<input type=input name=FILESIZE id=FILESIZE >
</td>
</tr>

<tr>
<td align="center" colspan=2><input type=button name=b id=b value="过滤" onclick="comm(1);"><input type=button name=c id=c value="保留" onclick="comm(2);"></td>
</tr>
</table>
</form>
</body>
</html>
<script>
function comm(flag){
frm.flag.value=flag;
alert(frm.flag.value);
for(var i=0;i<8;i++)
{
var str="frm."+param[0];
alert(eval(str.value));
if((str.value)==undefined)
{

}
else
{
if(param[i]=='FILESIZE'||param[i]=='LENGTH'||param[i]=='COUNT')
{
if(isNaN(praseInt(str.value)))
{
alert("请输入一个数字!");
return ;
}
}

if(param[i]=='SRCIP'||param[i]=='DESTIP'||param[i]=='SRCADDR'||param[i]=='DESTADDR')
{
if(!ipvalidate(str.value))
{
alert("请输入一个正确IP!");
return;
}
}
}
}
frm.submit();
return true;
}
yclin2005 2006-02-14
  • 打赏
  • 举报
回复
如果param[0]的值可以匹配input中的某个name
试试下面的写法:
var str="frm."+param[0];
alert(eval(str.value));
china2001ok 2006-02-14
  • 打赏
  • 举报
回复
上面代码是生成input和验证input的代码
china2001ok 2006-02-14
  • 打赏
  • 举报
回复
<table width=96% border=1 align='center' bordercolor='#999999' cellspacing='0' style="WORD-BREAK: break-all">
<%
//拆分过滤字段生成input,用,号分割

String[] filter_str=filter.split(",");
int i=0;

for(;i<filter_str.length ;i++)
{
String checkValue=filter_str[i];

out.print ("<script language='javascript'>"+
"param[" +i+ "]='" +filter_str[i]+ "';"+
"</script>");
String desc=com.Util .DBCtl .getParamDesc(filter_str[i]);
if(checkValue.equals("FILESIZE"))//智能分类 文件大小
{
%>
<tr='td_' height=35>
<td class="td_" ><%=desc%>:</td><td class="inputa" >
<select name=com id=com>
<option value=1>>=</option>
<option value=2><=</option>
<option value=3>=</option>
</select>
<input type=input name=<%=checkValue%> id=<%=checkValue%> >
</td>
</tr>
<%
}
else{
%>
<tr='td_' height=35>
<td class="td_" ><%=desc%>:</td><td class="inputa" >
<input type=input name=<%=checkValue%> id=<%=checkValue%> >
</td>
</tr>
<%
}
}

%>
<tr>
<td align="center" colspan=2><input type=button name=b id=b value="过滤" onclick="comm(1);"><input type=button name=c id=c value="保留" onclick="comm(2);"></td>
</tr>
</table>
</form>
</body>
</html>
<script>
function comm(flag){
frm.flag.value=flag;
alert(frm.flag.value);
for(var i=0;i<<%=i%>;i++)
{
var str="frm."+param[0];
alert(str.value);
if((str.value)==undefined)
{

}
else
{
if(param[i]=='FILESIZE'||param[i]=='LENGTH'||param[i]=='COUNT')
{
if(isNaN(praseInt(str.value)))
{
alert("请输入一个数字!");
return ;
}
}

if(param[i]=='SRCIP'||param[i]=='DESTIP'||param[i]=='SRCADDR'||param[i]=='DESTADDR')
{
if(!ipvalidate(str.value))
{
alert("请输入一个正确IP!");
return;
}
}
}
}
frm.submit();
return true;
}
</script>
mingxuan3000 2006-02-14
  • 打赏
  • 举报
回复
代码
DeluxWorld 2006-02-14
  • 打赏
  • 举报
回复
你的代码?
SuperBJack 2006-02-14
  • 打赏
  • 举报
回复
你获取的对象名称写得不正确,不存在,看清楚。

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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