javascritp checkbox全选反选代码
//全选与反选
<script type="text/网页特效">
var checkflag = "false";
function check(field)
{
if (checkflag == "false")
{
for (i = 0; i < field.length; i++)
{
field[i].checked = true;}
checkflag = "true";
return "全选";
}
else
{
for (i = 0; i < field.length; i++)
{
field[i].checked = false;
}
checkflag = "false";
return "全选";
}
}
</script>
//添加
function adddeptid(deptid)
{
var dept_id = deptid;
if(dept_id==0)
{
alert("请选择一个部门!")
return;
}
else
{
var re=showmdialog('emp_add.asp教程x?dept_id='+dept_id,'820','670','no');
if(re=="ok"){
window.location.reload();
}
}
}
//修改(修改是判断checkbox只能选择一个进行修改,最后获取选中的值来作为参数跳转页面)
function checkboxnum(emp_id){
//checkbox选择
var datalist = document.getelementbyid("gridview1");
var inputs = datalist.getelementsbytagname("input");
var checked_counts = 0;
var checkevalue = 0;
for(var i=0;i<inputs.length;i++)
{
if(inputs[i].checked)
{
checkevalue = inputs[i].value;
checked_counts++; }
}
if(checked_counts>1)
{
alert("只能选择一项!");
}
else if(checked_counts==0)
{
alert("请选择一项修改!");
}
else
{
var re=showmdialog('emp_add.aspx?edit_emp_id='+emp_id,'820','670','no');
if(re=="ok"){
window.location.reload();
}
}
}
//删除(先判断checkbox的选择个数,以数组的形式穿到另外一个页面)
function delselectedclick(emp_id)
{
if(emp_id==0)
{
alert("请选择一个部门!")
return;
}
var datalist = document.getelementbyid("gridview1");
var chkarray = datalist.getelementsbytagname("input");
var flag = false;
var checkvalue = "";
for(var i=0;i<chkarray.length;i++)
{
if( chkarray[i].type=="checkbox")
{
if(chkarray[i].checked)
{
checkvalue += chkarray[i].value+",";
flag = true;
}
}
}
if(flag == true)
{
if(confirm("确定要删除选中用户吗?"))
{
window.navigate("user_content.aspx?delete_emp_id="+emp_id);
return true;
}
else
{
return false;
}
}
else
{
alert("请先选择要删除的用户!");
return false;
}<table>
<tr>
<td>
<input id="checkbox1" type="checkbox" />全选
<a href="javascript:adddeptid(<%=ideptid %>)" style="cursor: pointer"> <img src="../img/tab/33.gif" alt="" />新增</a>
<a href="javascript:checkboxnum(<%=ideptid %>)" style="cursor: pointer"><img src="../img/tab/33.gif" alt="" />修改</a>
<a href="javascript:delselectedclick(<%=ideptid %>)" style="cursor: pointer"><img src="../img/tab/33.gif" alt="" />删除</a></td>
</tr>
</table>
核心代码
/**
* checkbox的点击方法
* 要求:
* 1.全选/全不选的checkbox的name属性为 单个checkbox的name属性名+_all , 注意:最后必须为_all.
* 例如:单个checkbox的name=or_id,则全选checkbox的name=or_id_all
* 2.全选/全不选的checkbox必须定义id属性,并且id属性值与name属性值相同
* 3.所有单个的checkbox在同一个form中.
* 4.全选/全不选的checkbox可以在form中也可以在form外面.
* 5.整个页面不允许再有和全选/全不选checkbox同name和同id的组件.
*
*/
function _tlscheckboxselall(formobj,checkboxclicked){
var checkname = checkboxclicked.name;//取得点击的checkbox的name属性
var index = checkname.indexof("_all");//判断是否有_all字符串
var isall = false;
if(index!=-1){//如果有_all
if(index+"_all".length==checkname.length){//满足说明_all是在最后面,表示这是个全选/全不选的checkbox.
isall = true;
}
}
var thischecked = checkboxclicked.checked;//当前checkbox的状态 true=选中 false=不选中
if(isall){//点了全选/全不选的checkbox
var childcheckname = checkname.substring(0,index);
eval("var allchildcheckboxs = formobj."+childcheckname);
var childcheckboxcount = allchildcheckboxs.length;
if(childcheckboxcount==null){//只有1个单个的checkbox
allchildcheckboxs.checked = thischecked;
}else{//有2个或2个以上的单个checkbox
for(var i=0;i<childcheckboxcount;i++){
allchildcheckboxs[i].checked = thischecked;
}
}
}else{//点了单个的checkbox
var parentcheckboxname = checkname+"_all";
if(thischecked==false){
document.getelementbyid(parentcheckboxname).checked=false;
}else{//判断点了当前checkbox后是否全部的单个checkbox都处于true状态
eval("var allchildcheckboxs = formobj."+checkname);
var childcheckboxcount = allchildcheckboxs.length;
var isallchecked = true;
if(childcheckboxcount==null){//只有1个单个的checkbox
if(allchildcheckboxs.checked==false){
isallchecked = false;
}
}else{//有2个或2个以上的单个checkbox
for(var i=0;i<childcheckboxcount;i++){
if(allchildcheckboxs[i].checked==false){
isallchecked = false;
break;
}
}
}
if(isallchecked){//全部单个checkbox都处于true状态
document.getelementbyid(parentcheckboxname).checked=true;
}
}
}
}