第一个jsp,表单如下,初始化有两个div,div和name属性的规律都是不一样且自增(自增方式可自定义),一个隐藏域用于存放区块数:
第一个jsp的js:
$('#click').click(function(){
//从隐藏域获取div数量
var flag = $('#flag').val();
flag = parseInt(flag);
//现在的div数量
var newFlag = flag + 1;
//数量超过限制就不添加了
if(newFlag>5){
return false;
}
//克隆第一个节点
var tagetDiv = $('#div1').clone(true);
//克隆的节点去除数据
tagetDiv.find(":input").each(function(){
$(this).val("");
});
//为新克隆节点更改id
tagetDiv.attr("id","div"+ newFlag);
//将新克隆节点加到后面
$('#flag').before(tagetDiv);
//为新节点更改input的name规则就是name后3位(避免各位数和十位数判断)数字加1
getName("div"+ newFlag, flag);
//隐藏域值改变
$('#flag').attr("value", newFlag);
});
//获取一个区块div的id和区块编号给所有本区快的input的name更换为XX1nn
function getName(id, flag){
$("#"+id+" input[type=text]").each(function () {
var name = $(this).attr("name");
var num = parseInt(name.substring(name.length-3))+ flag*3;//只要name后三位加3,3代表一个div里有3个
$(this).attr("name", num);
});
}
jsp接收并在页面赋值(操作比较自由):
<%
int flag = Integer.parseInt(request.getParameter("flag"));
int[] input = new int[flag*3];
for(int i=101;i<(101+flag*3);i++){
input[i-101] = Integer.parseInt(request.getParameter("input"+i));
} %>
<%=(input[0]+input[1]) %>
这是jap页面之间传值我所知道的方法,希望有其他方法的大神多给建议,多谢!!!