<c:forEach items="${list}" var="li">
<tr>
<td class="list_data_ltext" height="24">
<input id="jh" name="jh" value="${li.plaTodo }" />
<input type="button" value="保存" onclick="cztz('chance.do?method=upJhPlan&id=${li.plaId}')">
</td>
</tr>
</c:forEach>
id可以传,因为没修改,但是jh那个文本框修改后的值怎么传?cztz()一个js方法传个路径进去跳转
要是我加上onclick="cztz('chance.do?method=upJhPlan&id=${li.plaId})&jh=${li.plaTodo }那传的就是查出来的那个值
10 个解决方案
#1
onclick="cztz('chance.do?method=upJhPlan&id=${li.plaId})&jh='+document.getElementById("jh").value
#2
把每一组数据放在一个form里,提交的时候使用document.forms[下标].submit()的方式提交
#3
像这种表单上需要提交多个值的情况就别用什么JS提交了
给table套一个form
后再把参数名对应好,提交之后想要什么拿什么不就完了,id大不了放到隐藏域
何必这么麻烦
给table套一个form
后再把参数名对应好,提交之后想要什么拿什么不就完了,id大不了放到隐藏域
何必这么麻烦
#4
看错了,你的貌似是修改列表,那更简单
在Action定义一个List或者数组
给你的foreach标签顶一个varStatus,比如varStatus="aaa"
aaa.index可以取到循环的索引
你的表单的name可以这样传:jh[aaa.index]
这样后台的List或者数组就能对应上
最后在后台遍历更新就OK了
在Action定义一个List或者数组
给你的foreach标签顶一个varStatus,比如varStatus="aaa"
aaa.index可以取到循环的索引
你的表单的name可以这样传:jh[aaa.index]
这样后台的List或者数组就能对应上
最后在后台遍历更新就OK了
#5
你这就不对了吧,id选择器什么时候能到取循环里的东西了,目测永远返回第一行的数据。
#6
document.getElementById("jh").value---改为 name 然后索引 放 foreach 的index。
没看清循环
没看清循环
#7
<c:forEach items="${list}" var="li">
<tr>
<td class="list_data_ltext" height="24">
<input id="jh${li.plaId}" name="jh" value="${li.plaTodo }" />
<input type="button" value="保存" onclick="cztz('chance.do?method=upJhPlan&id=${li.plaId}','${li.plaId}')">
</td>
</tr>
</c:forEach>
function cztz(url,id){
var name = document.getElementById("jh"+id).value;
window.location.href = url+"&name="+name;
}
第一,在你input的id属性中加上你当前id这样确保唯一。
第二,在调用方法的时候,传入foreach中的id的值,这样确保你当前修改的正确性。
#9
4楼说的那样。前台遍历的时候,name值取数组名+下标。例如:name="userList[index].uName",index为遍历时的下标,userList为即将传到后台的数组,提交一次表单就可以了。
#10
如果这样的话,你写一个js就OK了,用form估计不妥...
#1
onclick="cztz('chance.do?method=upJhPlan&id=${li.plaId})&jh='+document.getElementById("jh").value
#2
把每一组数据放在一个form里,提交的时候使用document.forms[下标].submit()的方式提交
#3
像这种表单上需要提交多个值的情况就别用什么JS提交了
给table套一个form
后再把参数名对应好,提交之后想要什么拿什么不就完了,id大不了放到隐藏域
何必这么麻烦
给table套一个form
后再把参数名对应好,提交之后想要什么拿什么不就完了,id大不了放到隐藏域
何必这么麻烦
#4
看错了,你的貌似是修改列表,那更简单
在Action定义一个List或者数组
给你的foreach标签顶一个varStatus,比如varStatus="aaa"
aaa.index可以取到循环的索引
你的表单的name可以这样传:jh[aaa.index]
这样后台的List或者数组就能对应上
最后在后台遍历更新就OK了
在Action定义一个List或者数组
给你的foreach标签顶一个varStatus,比如varStatus="aaa"
aaa.index可以取到循环的索引
你的表单的name可以这样传:jh[aaa.index]
这样后台的List或者数组就能对应上
最后在后台遍历更新就OK了
#5
你这就不对了吧,id选择器什么时候能到取循环里的东西了,目测永远返回第一行的数据。
#6
document.getElementById("jh").value---改为 name 然后索引 放 foreach 的index。
没看清循环
没看清循环
#7
<c:forEach items="${list}" var="li">
<tr>
<td class="list_data_ltext" height="24">
<input id="jh${li.plaId}" name="jh" value="${li.plaTodo }" />
<input type="button" value="保存" onclick="cztz('chance.do?method=upJhPlan&id=${li.plaId}','${li.plaId}')">
</td>
</tr>
</c:forEach>
function cztz(url,id){
var name = document.getElementById("jh"+id).value;
window.location.href = url+"&name="+name;
}
第一,在你input的id属性中加上你当前id这样确保唯一。
第二,在调用方法的时候,传入foreach中的id的值,这样确保你当前修改的正确性。
#8
#9
4楼说的那样。前台遍历的时候,name值取数组名+下标。例如:name="userList[index].uName",index为遍历时的下标,userList为即将传到后台的数组,提交一次表单就可以了。
#10
如果这样的话,你写一个js就OK了,用form估计不妥...