使用 ssh 来操作的话,页面中元素 是用 iterator 来遍历出来的 name 是 action 中的属性 值为 你要删除 实体的id
<input type="checkbox" name="technologyIds" value="<s:property value="#technologyModel.id"/>"/>
js :
function selectAllOrDisSelectAll(){
var techIds = document.getElementsByName("technologyIds");
var nowStatus = document.getElementById("checkStatus");// 最上面那个用来控制全选操作的
for(var i=0;i<techIds.length;i++){
techIds[i].checked = nowStatus.checked;
}
}
后台 得到 technologyIds 数组 然后通过主键删除
JavaScript 可以么?
如果你会其他方法也行,指导指导!
@weina: 原理很简单,使用 JavaScript 操作所有CheckBox,并组合要提交的数据。
至于如何组合数据,这跟提交方式有关。
比如“全部删除”这个操作,可以通过页面提交到Servlet处理,也可以通过Ajax提交给Servlet或Action处理。推荐使用页面提交,这样可以避免Ajax手动刷新页面的问题。
全选/全不选很简单,设置一个叫chkAll的Checkbox,绑定其点击事件即可:
$("#chkAll").bind("click", function () { $(":checkbox").attr("checked", $("#chkAll").attr("checked")); });
全部删除的JavaScript部分,在删除按钮上绑定一个点击事件:
$("#btnDelete").bind("click", function () { $("#btnDelete").attr("disabled", "disabled"); if ($(":checkbox[id!='chkAll'][checked='true']").length == 0) { alert("请选择一条记录。"); return; } document.forms[0].submit(); });
至于Servlet或者Action里怎么写删除的处理方法,你自己来吧。
@飞扬的尘埃: 我这个是jsp页面,我实现不了全选功能,这个checkbox,只有一个,其他的是循环遍历出来的,所以........
@weina: 正因为只有一个checkbox,所以才用JavaScript来全选啊。JSP就是Java代码+HTML标签。当你能够使用JavaScript对页面进行操作的时候,JSP中的Java脚本早都运行完了,所有的checkbox都已经生成出来了。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>复选框选中效果</title> <style type="text/css"> .ct{ text-align:center; } </style> <script type="text/javascript"> function allCheck(){ var obj=document.getElementsByTagName("input"); if(document.getElementById("all").checked==true){ for(var i=0;i<obj.length;i++){ obj[i].checked=true; } }else{ for(var i=0;i<obj.length;i++){ obj[i].checked=false; } } } function checkT_F(){ var obj=document.getElementsByTagName("input"); var j=0; for(var i=0;i<obj.length;i++){ if(obj[i].id!='all'){ //如果是复选框 if(obj[i].checked==true){ //并且为选中 j++; } } } if(j==(obj.length-1)){ //如果复选框选中的数量等于(复选框总和减去全选这个选框的数量) document.getElementById("all").checked=true; //全选被激活 }else{ document.getElementById("all").checked=false; //取消全选 } } </script> </head> <body> <table width="500" border="1" cellspacing="0" cellpadding="0" class="ct" onclick="javascript:checkT_F()"> <tr> <td><input type="checkbox" id="all" name="allCK" onclick="javascript:allCheck()"/>全选</td> <td>产品名称</td> <td>价格(元)</td> <td>数量</td> </tr> <tr> <td><input type="checkbox" id="1" /></td> <td>诺基亚N85手机</td> <td>2589</td> <td>6</td> </tr> <tr> <td><input type="checkbox" id="2" /></td> <td>佳能数码相机</td> <td>1850</td> <td>5</td> </tr> <tr> <td><input type="checkbox" id="3" /></td> <td>戴尔键盘</td> <td>1834</td> <td>4</td> </tr> <tr> <td><input type="checkbox" id="4" /></td> <td>华为手机</td> <td>3432</td> <td>3</td> </tr> <tr> <td><input type="checkbox" id="5" /></td> <td>iphone</td> <td>4000</td> <td>20000</td> </tr> <tr> <td><input type="checkbox" id="6" /></td> <td>华硕笔记本</td> <td>6988</td> <td>5</td> </tr> <tr align="left"> <td colspan="4"> 删除选中的产品</td> </tr> </table> </body> </html>