asp 翻页 保存 checkbox值 js解决方案

本文介绍了一种使用JavaScript解决ASP项目中翻页时如何保持Checkbox选中状态的方法。通过隐藏控件和JavaScript函数,实现了在翻页前后保持Checkbox的状态,并能记录多个页面的选择值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         在web的翻页中有很多情况下有checkbox控件,如何在选择当前页的checkbox后翻页回来还能保留状态且记录多个页面选择的checkbox的value是在web开发中常见的问题。

          这次开发asp项目有遇到这个问题,写了一个小的demo用了hidden控件和js代码来实现,对每页checkbox数量不多的情况效率应该还不错,但是太多了js遍历控件可能会导致性能下降。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<SCRIPT LANGUAGE="JavaScript">
<!--
//設置選擇框狀態,可在頁面初始化的時候調用
function setCheckBox(objchk,objhdn){
    var i,j;
    var arrValue;
    if (objhdn.value != "" || objhdn.value != null){
        arrValue = objhdn.value.split(",");
    }
    for(i=0;i<objchk.length;i++){
        for(j=0;j<arrValue.length;j++){           
            if (objchk[i].value == arrValue[j]){
                objchk[i].checked = true;
            }
        }
    }
}
//保存選擇框狀態,可在提交頁面的時候調用
function keepCheckBox(objchk,objhdn){
    var i,j;
    var arrValue;
    if (objhdn.value != "" || objhdn.value != null){
        arrValue = objhdn.value.split(",");
    }
    for(i=0;i<objchk.length;i++){
        if (objchk[i].checked == true){       
            if (isExist(arrValue,objchk[i].value) == false){
                arrValue.push(objchk[i].value);
            } 
        }else{
            if (isExist(arrValue,objchk[i].value) == true){
                Remove(arrValue,objchk[i].value);
            }   
        }
    }   
    objhdn.value = arrValue.join(",");   
    alert(objhdn.value);
    document.all.form1.submit();
}
//判斷數組中是否存在value
function isExist(objArr,value){
    var i ;
    for(i=0;i<objArr.length;i++){
        if (objArr[i] == value){
            return true;
        }
    }
    return false;
}
//刪除數組中的元素
function Remove(objArr,value){
    var i ;
    for(i=0;i<objArr.length;i++){
        if (objArr[i] == value){
            objArr.splice(i,1);
        }
    }
}
//-->
</SCRIPT>
<SCRIPT FOR = form1 EVENT = onsubmit>
    alert("aaa");
</script>
<body>
<FORM name="form1" METHOD=POST ACTION="" >
<INPUT TYPE="hidden" name="hdnChk" value="1,3,8,9">
<TABLE>
<TR>
 <TD>1</TD>
 <TD><INPUT TYPE="checkbox" NAME="chk" value="1"></TD>
</TR>
<TR>
 <TD>2</TD>
 <TD><INPUT TYPE="checkbox" NAME="chk" value="2"></TD>
</TR>
<TR>
 <TD>3</TD>
 <TD><INPUT TYPE="checkbox" NAME="chk" value="3"></TD>
</TR>
<TR>
 <TD>4</TD>
 <TD><INPUT TYPE="checkbox" NAME="chk" value="4"></TD>
</TR>
</TABLE>
<input type="button" name="btn" value="prew" onclick="javascript:setCheckBox(document.all.chk,document.all.hdnChk)">
<input type="button" name="btn" value="next" onclick="javascript:keepCheckBox(document.all.chk,document.all.hdnChk)">
<INPUT TYPE="submit" value="submit">
</FORM>
</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值