Jquery 表格操作,記錄分頁情況下,每一頁中被用戶勾選的信息


如下圖,一個分頁列表,用戶可以隨意勾選一條或多條信息,然后進行某種操作,如“提交”。但是有個問題:如果勾選了一條信息之后,點【下一頁】,那么上一頁 勾選的條目被刷新掉了。

問題:如果用戶需要在第1頁,第二頁,第三頁各選幾條或多條 然后統一提交處理,該怎么辦?

        如何在第二頁,知道第一頁所選的條目? 如何在返回第一頁的時候,把剛才勾選過的條目 標記為選中的狀態?

思路:--->在頁面放一個DIV

             ------> 為checkbox加一個事件,當該條記錄被選中時,獲取這條記錄,把它存到div中

                 --------->從第二頁返回第一頁時,從DIV中檢查,將DIV中的記錄與列表中的記錄匹配,如果列表中的某條信息在DIV中,則將列表中的該條checkbox設為checked=true。

第一步:將 勾選的條目放在 DIV中,效果如下圖

 

 

//記錄或者刪除勾選的資源。
//參數: check 為當前點擊的checkbox,tableId為保存勾選條目的表格id
function toRecordCheck(check,tableId,recordDiv) {
    
    //用於記錄已經選擇的條目的 表格id.
    //var tableId="recordTable";
    //當前選中的行
    var tds = $(check.parentNode.parentNode);
  //根據td來查找 ,當前行的數據
var contents = tds.find("td"); //獲得資源編號 需要根據資源編號所在的列來獲取值 var sourceNum=contents[1].innerHTML; //如果是【取消選中】 if(!check.checked){ //alert("刪除資源編號為:"+sourceNum+"的條目"); var r=$("#"+tableId+" td").each(function(){ if($(this).text()==sourceNum){ var vh=$(this).parent().remove(); } }); } else { //如果是【選中】,在記錄的table里邊動態追加一行 var contentText = "<tr id="+sourceNum+">"; for ( var i = 0, j = contents.size(); i < j; i++) { if (i != 0){ contentText += "<td>" + contents[i].innerHTML+"</td>"; } } contentText+="</tr>"; $("#"+tableId+"").append(contentText); } }

第二步:返回【上一頁】時,恢復 上一次已經 勾選過的內容

在這里,以【資源編號】為查找條件,先獲得DIV中所記錄的資源編號,然后根據編號在 當前頁面的 列表中匹配,匹配上的,就把該條記錄的checkbox設為checked=true;

代碼如下:

//恢復記錄,將之前勾選過的條目選中
//參數:recordTableId為保存勾選條目的表格Id,listTableId為列表table的id.
function regain(recordTableId,listTableId){
    $("#"+recordTableId+" tr").each(function(){
        var ids=$(this).attr("id"); //獲得之前選中的資源編號
        $("#"+listTableId+" td").each(function(){//遍歷列表所在的table,
            if($(this).text()==ids){//將其中的資源編號與取得的資源編號匹配
                var vh=$(this).parent().find(":checkbox").attr("checked", true);//匹配成功  則選中當前行的 checkbox
            }
        });
    });
}    

效果如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM