2017-02-27 47 views
0

我想做一個簡單的分頁頁面。這是關於刪除功能。我有一個複選框,用戶可以選擇刪除一行。我可以知道如何帖子/得到行的id如果用戶點擊下一個鏈接?在我的情況下,如果用戶點擊複選框,該ID將會重複。下面是我的代碼,如何發佈id在Jquery複選框?

jQuery的

var cbNew = [], 
cbAdd = []; 

function addId(checkBox){ 
    cbAdd = cbAdd.concat(checkBox); 
    console.log(cbAdd); 
} 

$(document).on("click", ".checkBox", function(){ 
    var cb = []; 
    $('.checkBox:checked').each(function(){ 
     cb.push($(this).val()); 
    }); 

    if(cb.length > 0) { 
     addId(cb); 
     $('#delete').fadeIn(); 
    } else { 
     $('#delete').fadeOut(); 
    } 
}); 

//Link on Next Page 
$(".nextPage").click(getFunct); 

function getFunct(e){ 
    e.preventDefault(); 
    var url = $(this).attr('href'), 
    row = getURLParameter(url, 'startrow'), 
    cbNew = cbNew; 
    getParam(row,url); 
} 

function getParam(param1,param2){ 
    $.ajax({ 
     type: "POST", 
     url: url, 
     data: 
     { 
      row : param1, 
      url : param2, 
      cbNew : cbNew 
     } 
    }).done(function(data){ 
     $('#result').html(data); 
     addId(cbNew); 
    }); 
} 

這是輸出,如果我在多個複選框,點擊同一頁面console.log(cbAdd);

["25", "25", "26", "25", "26", "27"] 

。如果我點擊第1頁和一對一複選框複選框第2頁,它正確地得到了編號

["25", "59"] 

回答

1

您正在維護兩個數組,一個捕獲所有檢查的複選框值,即cb並將它們連接到另一個名爲cbAdd的數組,這裏您正在複製值。

允許使用單陣列cbAdd如下 -

$(document).on("change", ".checkBox", function(){ 
    var value = $(this).val(); 
    var index = cbAdd.indexOf(value); 
    if ($(this).is(":checked")) { 
     cbAdd.push(value); //put value 
    } else { 
     cbAdd.splice(index, 1);//remove value 
    } 
    if(cbAdd.length > 0) { 
     $('#delete').fadeIn(); 
    } else { 
     $('#delete').fadeOut(); 
    } 
}); 
+0

謝謝你的幫助@BhushanKawadkar。你做到了!我可以知道關於這行'var index = cbAdd.indexOf(value);'。它有什麼作用? – Amran

+0

'var index = cbAdd.indexOf(value);'將搜索cbAdd中的值並返回它在cbAdd中的位置。我曾經知道價值是否存在。如果值存在,'indexOf'將返回位置,如果不存在則返回-1。 –