动态添加文本框的取值问题

andy1217 2009-11-11 02:55:29
由于我这个页面有多个input输入框,所以用下面这种取值方法,存到隐藏域里,取隐藏域的值,就把这个页面里所有的input输入框的值都取出来了
请教下这里有别的方式来取值吗?高手帮忙解答下


var st1 = "";
var TRI = 0;//记录table的总行数

var num = 0;
function AddRow(ob)
//___________增加一行
{
num++;
var SetName = "woods" + num;
var newTR = ob.insertRow(TRI);

newTD = document.createElement("td");
newTD.innerHTML = '<input type="text" name="name_' + SetName + '" class="text01b">';
newTR.appendChild(newTD);

var txtlist = document.getElementsByTagName("input");
var names = "";
for(var i=0;i <txtlist.length;i++){
names+=txtlist[i].value+","; //把value值组合,并以','分割
}
//将所有的name值放入隐藏域(id=arryName,name=arryName)
document.getElementById("arryName").value=names;
}

<table border="0" id="st" width="770">
<tr>
<td>
<input type="hidden" name="arryName" id="arryName"/>
<input type="text" name="file_array[]" class="text01b">
</td>
</tr>
</table>
...全文
182 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsd123 2009-11-11
  • 打赏
  • 举报
回复
.
andy1217 2009-11-11
  • 打赏
  • 举报
回复
OK,结贴
阿非 2009-11-11
  • 打赏
  • 举报
回复
怎么可能不好用呢 ~

如果还不好用

你可以在提交的时候 执行一个js 函数



var txtlist = document.getElementsByTagName("input");
var names = "";
for(var i=0;i <txtlist.length;i++){
names+=txtlist[i].value+","; //把value值组合,并以','分割
}
//将所有的name值放入隐藏域(id=arryName,name=arryName)
document.getElementById("arryName").value=names;

换成

var txtlist = document.getElementsByName("file_array");
var names = "";
for(var i=0;i <txtlist.length;i++){
names+=txtlist[i].value+","; //把value值组合,并以','分割
}
//将所有的name值放入隐藏域(id=arryName,name=arryName)
document.getElementById("arryName").value=names;

这样 就是你新增的input 的内容了
andy1217 2009-11-11
  • 打赏
  • 举报
回复

function AddRow(ob)
//___________增加一行
{
num++;
//var SetName = "woods" + num;
var newTR = ob.insertRow(TRI);

newTD = document.createElement("td");
newTD.innerHTML = '<input type="text" name="file_array" class="text01b">';
newTR.appendChild(newTD);

var txtlist = document.getElementsByTagName("input");
var names = "";
for(var i=0;i <txtlist.length;i++){
names+=txtlist[i].value+","; //把value值组合,并以','分割
}
//将所有的name值放入隐藏域(id=arryName,name=arryName)
document.getElementById("arryName").value=names;
}


<table border="0" id="st" width="770">
<tr>
<td>
<input type="hidden" name="arryName" id="arryName"/>
<input type="text" name="file_array" class="text01b">
</td>
</tr>
</table>



这就是源文件里的
String vote_item=convertChinese(request.getParameter("file_array"));
这句是取值
阿非 2009-11-11
  • 打赏
  • 举报
回复
你现在代码怎么写的

还有生成的html 代码是怎样的
andy1217 2009-11-11
  • 打赏
  • 举报
回复
to Click_Me:
汗,你和Sandy945说的方式一样,所以我就只回了以个,不好意思啊
55555555,问题还没解决呀。。。。。。。。
阿非 2009-11-11
  • 打赏
  • 举报
回复
你改完后 生成的html 是什么样的

通过源文件查看
Click_Me 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 andy1217 的回复:]
我是改成name一样了测试的
[/Quote]
靠 我说的 你试了吗? 看人红花 就高手... 哎 无奈
andy1217 2009-11-11
  • 打赏
  • 举报
回复
我是改成name一样了测试的
阿非 2009-11-11
  • 打赏
  • 举报
回复
不是告诉你了么 新增的text 设置同样的name
andy1217 2009-11-11
  • 打赏
  • 举报
回复
to Sandy945:
你说的方法经测试,只能取到<input type="text" name="file_array[]" class="text01b">的值,不能取到我动态添加的输入框的值
Click_Me 2009-11-11
  • 打赏
  • 举报
回复

晕 前后台都混了 呵呵
在后台用
for(String val: name){}

andy1217 2009-11-11
  • 打赏
  • 举报
回复
10楼的高手,你说的怎么指定?
能给代码示例下吗?
谢谢啦
Click_Me 2009-11-11
  • 打赏
  • 举报
回复

那你的意思 应该就这样 你动态生成input框的时候 都给一个相同的名字 比如 name='inputName'

然后在后台直接
String[] name = request.getParameterValues('inputName');
然后后台 for(String val in name) 就可以了
sohighthesky 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 andy1217 的回复:]
由于我这个页面除了这里动态添加的多个input外,还有别的input输入框
我现在只要取到动态添加的多个input输入框的值就可以了
就是不知道怎么取这里动态添加的多个input输入框的值啊?????????
上面我粘贴的方法把这个页面所有的input的值都取出来了
求解答啊

[/Quote]
既然 这样,你就只将指定的input的值 放到hidden里啊
andy1217 2009-11-11
  • 打赏
  • 举报
回复
由于我这个页面除了这里动态添加的多个input外,还有别的input输入框
我现在只要取到动态添加的多个input输入框的值就可以了
就是不知道怎么取这里动态添加的多个input输入框的值啊?????????
上面我粘贴的方法把这个页面所有的input的值都取出来了
求解答啊
sohighthesky 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 click_me 的回复:]
JScript code
看样子楼主是JAVA的
如果input的name都相同的话 用
String langtype[]=request.getParameterValues("***");
这样获得就是对应name 值数组
[/Quote]
哦,,,,,,,
阿非 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 andy1217 的回复:]
我这里是动态添加行,用request.getParameter(name)也能取吗?
[/Quote]

没问题的 ~
Click_Me 2009-11-11
  • 打赏
  • 举报
回复

看样子楼主是JAVA的
如果input的name都相同的话 用
String langtype[]=request.getParameterValues("***");
这样获得就是对应name 值数组


sohighthesky 2009-11-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 andy1217 的回复:]
我这里是动态添加行,用request.getParameter(name)也能取吗?
[/Quote]
这个只能得到一个name吧,如果多个应该没办法 了,

jsp只能用ajax了
加载更多回复(4)

87,921

社区成员

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

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