2013-11-24 42 views
0

我想向用戶顯示一個比較按鈕來比較asp.net中的選定行。這是我到目前爲止所嘗試的。限制在GridView表中檢查的複選框

$(function() { 
    $("#myTable").find("input:checkbox").click(function() { 
     var bol = $("#myTable").find("input:checkbox:checked"); 
     alert(bol.length); 
     if (bol.length <= 3) { 
      $('#hello').fadeIn(); 
     } else if (bol.length > 1) { 
      alert('hi'); 
      $('#error').hide(); 
     } else if (bol.length >= 4) { 
      $("#myTable").find("input:checkbox").not(":checked").attr("disabled", bol); 
     } else { 
      $('#hello').hide(); 
     } 
    }); 
    $('#compare').click(function() { 
     var ck = $("#myTable").find("input:checkbox:checked"); 
     if (ck.length === 1) { 
      $('#error').show(); 
     } else if (ck.length > 1) { 
      $('#error').hide(); 
     } 
    }); 
}); 

現在,我想隱藏#error ID,如果用戶選中多個複選框這是不是現在發生的事情。

Fiddle

我這個也試過,但它不是使複選框,如果我們選擇的4個複選框,然後選中任意一個。

$(function() { 
    $("#myTable").find("input:checkbox").click(function() { 
     var bol = $("#myTable").find("input:checkbox:checked"); 
     if (bol.length <= 3) { 
      $('#error').hide(); 
      $('#hello').fadeIn(); 
     } else if (bol.length >= 4) { 
      $("#myTable").find("input:checkbox") 
       .not(":checked").attr("disabled", bol); 
     } else { 
      $('#hello').hide(); 
     } 
    }); 
    $('#compare').click(function() { 
     var ck = $("#myTable").find("input:checkbox:checked"); 
     if (ck.length === 1) { 
      $('#error').show(); 
     } 
    }); 
}); 

Fiddle

+0

小提琴似乎爲我工作。你正在使用哪種瀏覽器?在win7 chrome中使用 – christiandev

+0

。 http://fiddle.jshell.net/ravimallya/H35YG/show/這裏也不起作用。沒有錯誤雖然... – Ravimallya

+0

@Ravimallya這是你想要的 - > http://jsfiddle.net/cse_tushar/H35YG/4/ –

回答

0

我能解決這個問題。這裏是解決方案。回答我的問題,因爲這可能對某人有幫助。

$(function() { 
    // Just pass the gridview id or class name where it has checkbox in header as well as in each row. Also, define num to restrict maximum number of checkboxes, that needed to be checked. 
    var grd = $('.mGrid'); 
    var num = 4; 
    var count = 0; 
    var headChk = grd.find('th>input:checkbox'); 
    var checks = grd.find('td>input:checkbox'); 
    $(headChk).change(function() { 
     if ($(headChk).is(':checked')) { 
      for (i = 0; i < num; i++) { 
       $(checks[i]).prop("checked", true); 
      } 
     } else { 
      $(checks).prop("checked", false); 
     } 
    }); 
    // to check or uncheck top selector 
    $(checks).change(function() { 
     var bol = grd.find("td>input:checkbox:checked"); 
     var b = grd.find("td>input:checkbox"); 
     var a = bol.length; 
     var c = (b.length); 
     if (a > num) { 
      alert("Can't select more than " + num + " items"); 
      $(this).prop("checked", false); 
     } else if (a == num) { 
      $(headChk).prop("checked", true); 
     } else { 
      $(headChk).prop("checked", false); 
     } 
    }); 
}); 

Fiddle

相關問題