关于struts1里的checkbox标签
最近在做一个小项目,从数据库取出一些信息在页面上展示后,在每条信息的的前面加了个checkbox,请问对信息做删除操作时,怎么在action里面得到哪些信息是被选中的呢?...
最近在做一个小项目,从数据库取出一些信息在页面上展示后,在每条信息的的前面加了个checkbox,请问对信息做删除操作时,怎么在action里面得到哪些信息是被选中的呢?
展开
3个回答
展开全部
checkbox提交时,会把value和选中状态都提交,我没试过在action代码中去处理,
我的建议是,在提交前做一次处理
var rr="";
for(var i = 0;i<names.length;i++){
var names = document.getElementsByName("name");
if(names[i].checked == true){
rr+=" '"+names[i].value+" ', "
}
}
这样最后rr变成了一个字符串(以楼上回答为例)" 'id_1', 'id_2', 'id_3',"这样会多一个逗号,不过没关系,咱们可以截取下
rr=rr.substring(0,rr.length()-1),这种写法是比较好的,当然还有一种不严谨的方法
以上的字符串你传到action里,然后在拼接sql 语句时通过 "select * from table where id in ("+rr+"'this_is_not_exists')"
加一个不存在的值,
我的建议是,在提交前做一次处理
var rr="";
for(var i = 0;i<names.length;i++){
var names = document.getElementsByName("name");
if(names[i].checked == true){
rr+=" '"+names[i].value+" ', "
}
}
这样最后rr变成了一个字符串(以楼上回答为例)" 'id_1', 'id_2', 'id_3',"这样会多一个逗号,不过没关系,咱们可以截取下
rr=rr.substring(0,rr.length()-1),这种写法是比较好的,当然还有一种不严谨的方法
以上的字符串你传到action里,然后在拼接sql 语句时通过 "select * from table where id in ("+rr+"'this_is_not_exists')"
加一个不存在的值,
2012-09-04
展开全部
<input type="checkbox" name="name" value="id_1"/>
<input type="checkbox" name="name" value="id_2"/>
<input type="checkbox" name="name" value="id_3"/>
<input type="submit" name="submit1" onClick="dels()" value="删除" >
JS是:
function dels()
{
var checkedCount = 0;
var names = document.getElementsByName("name");
for(var i = 0;i<names.length;i++){
if(names[i].checked == true){
checkedCount++;
}
}
var k=0;
var para = new Array(checkedCount);
for(var j = 0;j<towerId.length;j++){
if(names[j].checked == true){
para[k] = names[j].value;
k++;
}
}
if(para.length>0){
if(confirm("确定要删除吗?")){
document.FormName.action="<%=request.getContextPath()%>/Action名字.do? method=deletes¶="+para; }
}else{
alert("请选择删除对象!");
return false;
}
}
从我现有的项目里随便摘了一段,希望对你有用。
<input type="checkbox" name="name" value="id_2"/>
<input type="checkbox" name="name" value="id_3"/>
<input type="submit" name="submit1" onClick="dels()" value="删除" >
JS是:
function dels()
{
var checkedCount = 0;
var names = document.getElementsByName("name");
for(var i = 0;i<names.length;i++){
if(names[i].checked == true){
checkedCount++;
}
}
var k=0;
var para = new Array(checkedCount);
for(var j = 0;j<towerId.length;j++){
if(names[j].checked == true){
para[k] = names[j].value;
k++;
}
}
if(para.length>0){
if(confirm("确定要删除吗?")){
document.FormName.action="<%=request.getContextPath()%>/Action名字.do? method=deletes¶="+para; }
}else{
alert("请选择删除对象!");
return false;
}
}
从我现有的项目里随便摘了一段,希望对你有用。
追问
请问你这最后一段写的是什么意思啊?特别是 document.FormName.action="/Action名字.do? method=deletes¶="+para;
追答
请问你这最后一段写的是什么意思啊?特别是 document.FormName.action="/Action名字.do? method=deletes¶="+para;
------------------------------------------------------------
这是提交表单时的路径,表单会被提交到action中对应的方法里。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
选中的会提交到struts里面去,没选中的不会被提交过去的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询