!!!!!!请教表单中输入多个name为相同值的问题!

libra_king 2004-09-28 02:27:13
1、如果有多个<input type="text" name="kkk" value="">如何在JS中获得每个的值,我试过用document.all.kkk.value不能取得它们的值;
2、如果我要把多个<input type="text" name="kkk" value="">提交到另一个页面,只能通过
request.getParametervalues()吗?那如果有很多不同的内容提交,那岂不是要写N多个request.getParametervalues(),usebean里能否解决这种问题?
...全文
145 点赞 收藏 16
写回复
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
libra_king 2004-09-29
TO cao8208(咖啡泡面):谢谢你了,与其那样我还是用我的蠢办法吧!
今天暂不结帖,看还有没有高手!!!
期待ing!!!!!
回复
cao8208 2004-09-29
如果按照你的思路,只能用这种方法了,必须把每个都取出来访到数据库中

但是也可以这样:定义一个公共数组存你要从上一个画面取得参数名,然后写一个公用的方法来取得所有定义的参数值,这样你就可以只该这个公共数组就可以了

只给个思路
回复
jbls1781 2004-09-29
JSP代码就是之能实现那么麻烦的功能,除非你用自第一标签
回复
libra_king 2004-09-29
谁能回答第二个问题,在线等啊!
回复
dzhcheng 2004-09-29
学习学习!
回复
libra_king 2004-09-29
UP
回复
libra_king 2004-09-28
难道第二个问题就没人会吗?
回复
libra_king 2004-09-28
欢迎大家踊跃发言!!!!!
回复
libra_king 2004-09-28
真是集思广益啊!
第一个问题已经了解了!谢谢大家~
第二个问题我说具体点并给出代码!我要做一个单据的提交;代码如下:
<form name="form1" method="post" action="test.jsp">
<table width="300" border="1">
<tr>
<td>编号</td>
<td>姓名</td>
<td>性别</td>
</tr>
<tr>
<td><input type="text" name="code" style='border:0px solid'></td>
<td><input type="text" name="name" style='border:0px solid'></td>
<td><input type="text" name="sex" style='border:0px solid'></td>
</tr>
<tr>
<td><input type="text" name="code" style='border:0px solid'></td>
<td><input type="text" name="name" style='border:0px solid'></td>
<td><input type="text" name="sex" style='border:0px solid'></td>
</tr>
</table>
<input type="submit" name="Submit" value="Submit">
</form>
在test.jsp网页中要获得这些值并把它们存入数据库,我现在的做法是用
String [] codes=request.getParametervalues("code");
String [] names=request.getParametervalues("name");
String [] sexs=request.getParametervalues("sex");
然后用循环
for(int i=0; i<code.length;i++)
{
String code=codes[i];
String name=names[i];
String sex=sexs[i];
.......(涉及到JAVABEAN的方法就省了)
}
把他们分别存入数据库


但是我觉得这种方法很苯,如果有个十几个字段,那岂不是很麻烦!
能不能用<jsp:setProperty name="test" property="*" />的方法一次把所有的值都传过来?
回复
dzhcheng 2004-09-28
谢谢 xunyiren(从jsp开始)!让我又学到了一点!
回复
dugang106 2004-09-28
第一个问题xunyiren(从jsp开始) 已经回答
第二个:
你可以把结果合并,然后当做一个输入域提交
<SCRIPT LANGUAGE="JavaScript">
function beforesubmit(form){
var kkks="";
var kkk=form.kkk;
for (i=0;i<kkk.length;i++) {
if(kkk[i].value!=''){
kkks+=kkk[i].value+",";
}
}
if(kkks.length>0)
kkks=kkks.substring(0,kkks.length-1);
form.kkks.value=kkks;
form.submit();
}
</script>

<form name="f">
<input type="hidden" name="kkks" value="">
<input type="text" name="kkk" value="1">
<input type="text" name="kkk" value="2">
<input type="text" name="kkk" value="3">
<input type="text" name="kkk" value="4">
<input type="text" name="kkk" value="5">
<input type="submit" name="submitbutton" value="提交" onclick="beforesubmit(this.form)">
</form>
读取的时候request.getParametervalue("kkks");
然后用StringTokenizer来得到每一个就ok了。
不知道你具体要实现什么功能,提供个思路吧
回复
禽兽v5 2004-09-28
1.
var objs = document.getElementsByName('kkk');

for ( i = 0; i < objs.length; i++ )
{
// do something
}

2.没办法啊,又不可以传类过去。或者组织自定义格式放在hidden标签中。
回复
fmzbj 2004-09-28
对,就像那样的数组。。。
回复
fmzbj 2004-09-28
你用数据吧:kkk[0],kkk[1],kkk[2]......
回复
aoplo 2004-09-28
楼上说的对,将多个text的值在客户端组合到一个变量中传递到下一页面在拆开!
回复
xunyiren 2004-09-28
<input type="text" name="kkk" value="1">
<input type="text" name="kkk" value="2">
<input type="text" name="kkk" value="3">
<input type="text" name="kkk" value="4">
<input type="text" name="kkk" value="5">
<SCRIPT LANGUAGE="JavaScript">
<!--
for (i=0;i<kkk.length;i++) {
alert(kkk[i].value)
}
//-->
</script>
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

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