//添加一行 var mainTable = document.getElementById("yourtable"); var newTr = mainTable.insertRow(); var newTd0 = newTr.insertCell(); var newTd1 = newTr.insertCell(); //设置列内容和属性 newTd0.innerHTML = "<s:textfield name="" label=""></s:textfield>" newTd1.innerHTML = "<input type=\"button\" name=\"add\" value=\"删除\" onClick=\"delRow(this)\">";}//删除行 function delRow(obj){ var tr = this.getRowObj(obj); if(tr != null){ tr.parentNode.removeChild(tr); }else{ throw new Error("the given object is not contained by the table"); } } 这是动态增加行的代码,但是你用的是Struts2提交。 有多个 <s:textfield name="name"></s:textfield> 一样的你怎么处理.建议你用普通form表单提交,后台用request.getParameterMap()获取值。
<input/ type="button" onclick="add()">
function add(){
var tf = "<s:textfield>";
document.getElementById("textfields").innerHTML = tf;}大概就是这个思路,代码没有测试 ,希望有用
document.getElementById("textfields").innerHTML = tf;
这一句再添加只是替换原来的,不会增多楼主看我博客一个类似的例子吧。也是这个功能。div+css+jQuery简单实现投票功能..
http://blog.csdn.net/isea533/article/details/7868681上面的选项就是点击“增加一个”增加的,后面的按钮X还可以删除。
用数组来操作
//增加行
function addRow()
{
//添加一行
var mainTable = document.getElementById("yourtable");
var newTr = mainTable.insertRow(); var newTd0 = newTr.insertCell();
var newTd1 = newTr.insertCell();
//设置列内容和属性
newTd0.innerHTML = "<s:textfield name="" label=""></s:textfield>"
newTd1.innerHTML = "<input type=\"button\" name=\"add\" value=\"删除\" onClick=\"delRow(this)\">";}//删除行
function delRow(obj){
var tr = this.getRowObj(obj);
if(tr != null){
tr.parentNode.removeChild(tr);
}else{
throw new Error("the given object is not contained by the table");
}
}
这是动态增加行的代码,但是你用的是Struts2提交。
有多个
<s:textfield name="name"></s:textfield>
一样的你怎么处理.建议你用普通form表单提交,后台用request.getParameterMap()获取值。
或者可以获取所有的文本框值生成json 放入隐藏域传到后台。