Posted on 2007-09-24 19:51
瘋狂 閱讀(16800)
評論(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;
}
}
}