2017-02-02 17 views
0

我正在開發基於jQuery的應用程序。我有一個在每行都有複選框的asp.net gridview。我想檢查是否有任何複選框被選中。我通過gridview行循環,並檢查任何複選框被選中或不是如下。如何通過使用jQuery的GridView循環,並檢查是否有任何複選框被選中

var ResultArrayFirst = []; 
     $('#<%= gdvRegretletter.ClientID %> input[type="hidden"]').each(function() { 
      if ($(this).closest('tr').find('input[type="checkbox"]').prop('checked', true)) 
      { 
       ResultArrayFirst.push($(this).val()); 
      } 

     }); 
     alert(ResultArrayFirst); 

我上面的代碼不起作用。只要上面的代碼被執行,所有的複選框將被檢查。我不確定我在這裏錯過了什麼。任何幫助,將不勝感激。謝謝。

回答

2

要檢查複選框被選中,使用此:

if (checkbox.is(':checked')) { 
    // Do your stuff 
} 

因此,改變你這樣的代碼:

if ($(this).closest('tr').find('input[type="checkbox"]').is(':checked')) 
{ 
    ResultArrayFirst.push($(this).val()); 
} 
2

您可以使用:checked選擇的jQuery

$('#<%= gdvRegretletter.ClientID %> input[type="hidden"]').each(function() { 
    if ($(this).closest('tr').find('input[type="checkbox"]').is(":checked")) 
    { 
     ResultArrayFirst.push($(this).val()); 
    } 

    }); 
1

只給一個複選框作爲例子chk而不是使用.map(),而不是每次循環就會得到一個數組項請看下面的一行代碼來實現

var selected = $(".chk:checked").map(function(i,el){return el.value;}).get(); 

,以及如果你想如果任何複選框被選中,只是檢查或沒有,你可以如下做到的它會返回一個bool的值

$(".chk").is(":checked") 
相關問題