2013-05-17 43 views
0

我有4個用於分頁的按鈕(第一個移動下一個移動回來和最後一個)。 我正在嘗試在分頁期間維護複選框。問題是,當我選擇任何複選框,然後轉到下一頁,然後回到同一頁面時,它不顯示先前選中的複選框,但只要點擊下一頁,在轉到下一頁之前,它會顯示值檢查。使用jQuery在分頁期間無法維護複選框

這是我的代碼,任何人都可以指導我在哪裏做錯了?

$(function() { 
     toggleSelectBtnOnCheck(); 
    }); 

    function toggleSelectBtnOnCheck() { 
     debugger; 
     //Register checkbox click handler to be called when Ajax requests complete. 
     $('#contentDiv').ajaxComplete(function() { 
      $('.tdHeadForCheckboxRadioButton').append('<input class="search" onclick="checkUnchekAllCheckboxes(this);" type="checkbox"/>'); 
      $('.afirst, .aprev, .anext, .alast, .search:checkbox').click(function() { 
       var selectedVal = $(this).closest('td'); 
       var selectClaim = selectedVal.next().text(); 
       var selectSuffix = selectedVal.next().next().text(); 
       var ClaimSuffix = selectClaim + '|' + selectSuffix + ','; 
       if ($(this).is(':checked')) { 
        document.getElementById('hdnChkClaim').value += ClaimSuffix; 
       } else if ($('#hdnChkClaim').val().indexOf(ClaimSuffix) != -1) { 
        $('#hdnChkClaim').val($('#hdnChkClaim').val().replace(ClaimSuffix, '')); 
       } 
       alert($('#hdnChkClaim').val()); 
       if (jQuery(this).attr("href") != "") { 
        //button.disable($('span.btnSelect')); 
        var SelectedItemsCheckboxID = []; 
        if ($('#hdnChkClaim').val() != '') { 
         debugger; 
         if (ClaimSuffix.indexOf(',') != -1) { 
          ClaimSuffix = ClaimSuffix.substr(0, ClaimSuffix.length - 1); //remove last ',' 
         } 
         SelectedItemsCheckboxID = $('#hdnChkClaim').val().split(','); 
         for (i = 0; i < SelectedItemsCheckboxID.length; i++) { 
          var claimDetails = SelectedItemsCheckboxID[i].split('|'); 
          a = claimDetails[0]; 
          b = claimDetails[1]; 
          $('tr').filter(function(index) { 
           var columns = $(this).children('td'); 
           alert(columns.eq(1).text() === a && columns.eq(2).text() === b); 
           return columns.eq(1).text() === a && columns.eq(2).text() === b; 
          }).find('input:checkbox').attr("checked", true); 
          ; 
         } 
        } 
        if ($('.search:checkbox:checked').length > 0) { 
         button.enable($('span.btnSelect')); 
        } else { 
         button.disable($('span.btnSelect')); 
        } 
       } 
      }); 
     }); 
    } 

回答

0

你必須使用隱藏字段,當用戶選擇一個複選框,將其添加到隱藏字段像逗號分隔的編號,當每一個頁面,是因爲分頁檢查的移動,如果在當前頁面所有的id是屬於隱藏字段,如果是標記他們檢查。