在页面上checkbox使用的比较频繁,一般数据的列表页都会涉及到checkbox的操作,一般的操作有:判读是否选中、判读是否多选等
var checkElement={};
//选中所有
//参数:对应的check组名称
checkElement.selectAllCheck=function(checkName){
var selecters=document.getElementsByName(checkName);
for (i=0; i<selecters.length; i++)
{
if (selecters[i].type == "checkbox")
{
selecters[i].checked=true;
}
}
}
//删除所有选中的勾
//参数:对应的check组名称
checkElement.deleteAllCheck=function(checkName){
var selecters=document.getElementsByName(checkName);
for (i=0; i<selecters.length; i++)
{
if (selecters[i].type == "checkbox")
{
selecters[i].checked=false;
}
}
}
//判断是否有选中的 true or false
//参数:对应的check组名称
checkElement.justifyChecked=function(checkName){
var selecters=document.getElementsByName(checkName);
var flag = false;
for(i=0;i<selecters.length;i++)//先判断是否有选上的项
{
if (selecters[i].type == "checkbox" && selecters[i].checked==true)
{
flag = true;
break;
}
}
return flag;
}
//选择全选或者不选--这个全选框调用的方法,选中它页面的多选框都选中反之亦然
//参数:(全选框对象,tbodyID(table中的<tbody>的id),子checkbox名称也即是tbodyID中的checkbox)
checkElement.selectAllBox=function(checkBox,tbodyId,checkName){
var tbody = document.getElementById(tbodyId);
if(checkBox.checked==true){//当选中时,说明全选
this.selectAllCheck(checkName);
}else{//否则,全不选
this.deleteAllCheck(checkName);
}
}
//由单选框判断全选框状态--tbody中的checkbox调用的方法
//参数:对应的check组名称
checkElement.checkAllStatus=function(checkName){
var selecters=document.getElementsByName(checkName);
var flag = true;
//1.由单选框判断全选框状态
for(i=0;i<selecters.length;i++){
flag &= selecters[i].checked;
}
document.getElementsByName("selectCheck")[0].checked=flag;
return flag;
}
//判断是否有结果集
//参数:对应的check组名称
checkElement.checkHaveResult=function(checkName){
var v = '1';
var check = document.getElementsByName(checkName);
if(check==null || check.length==0){
v=0;
}
if(v=='0'){
alert("没有任何记录");
return false;
}
return true;
}
//判断是否有多选---一般修改时使用
//参数:对应的check组名称
checkElement.justifyCheckedMore=function(checkName){
var count=0;
var selecters=document.getElementsByName(checkName);
var flag = false;
for(i=0;i<selecters.length;i++)//先判断是否有选上的项
{
if (selecters[i].type == "checkbox" && selecters[i].checked==true)
{
count++;
}
}
return count;
}
//获取一个打勾的框的value
//参数:对应的check组名称
checkElement.getCheckedValue=function(checkName){
var v=null;
var selecters=document.getElementsByName(checkName);
var flag = false;
for(i=0;i<selecters.length;i++)//先判断是否有选上的项
{
if (selecters[i].type == "checkbox" && selecters[i].checked==true)
{
v = selecters[i].value;
}
}
return v;
}
//在checkName对应的check组中获取要修改的ID
//参数:对应的check组名称
checkElement.getModifyId=function(checkName){
var modifyId='';
var count =this.justifyCheckedMore(checkName);
if(count==0){
alert("请选择需要修改的记录信息!",msg_Type);
}else if(count>1){
alert("请选择一行记录进行修改!",msg_Type);
}else{
modifyId= this.getCheckedValue(checkName);
}
return modifyId;
}
//在checkName对应的check组中判断是否可以删除
//参数:对应的check组名称
checkElement.getDeleteFlag=function(checkName){
var deleteFlag='0';
var count =this.justifyCheckedMore(checkName);
if(count==0){
alert("请选择需要删除的记录信息!",msg_Type);
}else{
deleteFlag="1";
}
return deleteFlag;
}
//点击一行时行高亮
checkElement.trClick=function(obj){
//如果点击的是checkbox本身,则跳过点击行事件,以免事件重复执行,导致选不上的现象
if(event.srcElement.type=="checkbox"){
return;
}
var checkbox=$(obj).find("input:checkbox")[0];
if(checkbox.checked==true){
checkbox.checked=false;
}else{
checkbox.checked=true;
}
this.checkAllStatus(checkbox.name);
}