Posted on 2007-09-24 19:51
疯狂 阅读(16793)
评论(5) 编辑 收藏
在做系统数据删除的时候,往往需要批量删除一些数据,如何做到呢?下面是一个小例子:
有以下表单:里面有几个checkbox,如何当点击第一个checkbox而同时选择所有的checkbox呢?可以用后面的script方法:
<form>
<table >
<tr>
<td
<input type="checkbox" name="ifAll" id="ifAll" onClick="checkAll()">
</td>
<tr>
<td><input type="checkbox" name="selectFlag" value="checkbox1"></td>
</tr>
<tr>
<td><input type="checkbox" name="selectFlag" value="checkbox1"></td>
</tr>
<tr>
<td><input type="checkbox" name="selectFlag" value="checkbox2"></td>
</tr>
<tr>
<td><input type="checkbox" name="selectFlag" value="checkbox3"></td>
</tr>
<table >
</form>
<script type="text/javascript">
function checkAll() {
for (var i = 0; i < document.getElementsByName("selectFlag").length; i++) {
document.getElementsByName("selectFlag")[i].checked = document.getElementById("ifAll").checked;
}
}
</script>
用以下方法可以得到所有checkbox的值:
String[] userIds = request.getParameterValues("selectFlag");//返回一个数组
然后进行删除:
调用方法:UserManager.getInstance().deleteUser(userIds);
(具体的方法deleteUser(userIds)如下)
public void deleteUser(String[] userIds) {
StringBuffer sbSql = new StringBuffer();
for (int i =0; i < userIds.length; i++) {
sbSql.append("'")
.append(userIds[i])
.append("',");
}
String sql = "delete from t_user where user_id in (" + sbSql.substring(0, sbSql.length() - 1) + ")";
Connection conn = null;
Statement stmt = null;
try{
conn = DB.getConn();//DB是一个链接数据库的javabeen
stmt = conn.createStatement();
stmt.executeUpdate(sql);
}catch(SQLException e) {
e.printStackTrace();
}finally {
DB.close(stmt);
DB.close(conn);
}
}
ok!
评论
# re: 如何用javascript控制checkbox,并进行批量删除[未登录] 回复 更多评论
2007-09-24 20:06 by
另外一种方法:
//select all
function checkAll(form)
{
for (var i=0; i<form.elements.length; i++)
{
var e = form.elements[i];
if (e.name != 'ifAll')
e.checked = form.chkall.checked;
}
}
//效果是一样的,似乎更简洁些
# re: 如何用javascript控制checkbox,并进行批量删除 回复 更多评论
2007-09-24 22:24 by
还有更简单的
<input type="checkbox" name="ifAll" id="ifAll" onClick="checkAll(this)">
function checkAll($obj) {
var elms = document.getElementsByName("selectFlag");
for (var i = 0; i < elms.length; i++) {
elms[i].checked = $obj.checked;
}
}
# re: 如何用javascript控制checkbox,并进行批量删除 回复 更多评论
2007-10-13 03:48 by
这些是不是所有的浏览器读支持?测试过了吗?
# re: 如何用javascript控制checkbox,并进行批量删除 回复 更多评论
2009-02-22 18:01 by
表单是用Submit按钮提交吗 ???? 我没有接受到值 null
# re: 如何用javascript控制checkbox,并进行批量删除 回复 更多评论
2010-07-10 14:44 by
function checkAllBox (obj){
var sampleid = document.getElementsByName("sampleid");
// 如果点击了全选,所有的checkbox都被选中
if (obj.checked == true) {
for (var i=0; i<sampleid.length; i++) {
sampleid[i].checked = true;
}
} else {
for (var i=0; i<sampleid.length; i++) {
sampleid[i].checked = false;
}
}
}