2009-09-15 14 views
10

Ich muss alle Kontrollkästchen in einer Tabellenzelle deaktivieren, wenn Sie auf einen Hyperlink in der gleichen Tabelle klicken.Deaktivieren Sie alle Kontrollkästchen in einer Tabelle mit jquery

Ich verwende den folgenden jquery-Code, um alle in der Tabelle geschachtelten Kontrollkästchen auszuwählen.

$el = $(this).parents('table:eq(0)')[0].children('input[type="checkbox"]'); 
$($el).attr('checked', true); 

Aus irgendeinem Grund funktioniert dieses Stück Code nicht.

Kann jemand mir zeigen, wie man es repariert?

Antwort

25
$('table input[type=checkbox]').attr('disabled','true'); 

, wenn Sie eine ID für die Tabelle haben

$('table#ID input[type=checkbox]').attr('disabled','true'); 
+3

Ich habe festgestellt, dass man schreiben sollte wahr und nicht wahr nehmen. Das funktioniert: $ ('table input [type = checkbox]'). Attr ('deaktiviert', true), aber nicht das: $ ('table input [type = checkbox]'). Attr ('deaktiviert', 'wahr'); – gpasse

+0

Hat mir geholfen und mich davor bewahrt, eine Frage aufzuschreiben. Vielen Dank. +1 – SearchForKnowledge

6

Deaktivieren?

$("a.clickme").click(function(){ 
    $(this)     // Link has been clicked 
    .closest("td")   // Get Parent TD 
    .find("input:checkbox") // Find all checkboxes 
    .attr("disabled", true); // Disable them 
}); 

oder überprüft?

$("a.clickme").click(function(){ 
    $(this)     // Link has been clicked 
    .closest("td")   // Get Parent TD 
    .find("input:checkbox") // Find all checkboxes 
    .attr("checked", false); // Uncheck them 
}); 
2

Ihr Code kann viel einfacher sein:

$el = $(this).parents('table:eq(0)')[0].children('input[type="checkbox"]'); 

Könnte sein:

$el = $(this).parents('table:first :checkbox'); 

Dann, sie zu deaktivieren:

$el.attr('disabled', 'disabled'); 

oder sie überprüfen:

$el.attr('checked', 'checked'); 

oder sie deaktivieren:

$el.removeAttr('checked'); 

oder sie:

$el.removeAttr('disabled'); 
0

See auch: selector/checkbox

jQuery("#hyperlink").click(function() { 
    jQuery('#table input:checkbox').attr('disabled', true); 
    return false; 
}); 
0

// Aktivieren/Deaktivieren Sie alle Kontrollkästchen

$('#checkbox').click(function() { 

    var checked = $(this).attr('checked'); 
    var checkboxes = '.checkboxes input[type=checkbox]'; 

    if (checked) { 
     $(this).attr('checked','checked'); 
     $(checkboxes).attr('disabled','true'); 
    } else { 
     $(this).removeAttr('checked'); 
     $(checkboxes).removeAttr('disabled'); 
    } 
}); 
0

Dies ist meine Lösung

// Action sur le checkbox 
     $("#tabEmployes thead tr th:first input:checkbox").click(function() { 
      var checked = $(this).prop('checked'); 
      $("#tabEmployes tbody tr td:first-child input:checkbox").each(function() { 
       $(this).prop('checked',checked); 
      }); 
     }); 
0

------------------ ------------- HTML-Code unten ------------------------------

<table id="myTable"> 
    <tr> 
     <td><input type="checkbox" checked="checked" /></td> 
     <td><input type="checkbox" checked="checked" /></td> 
     <td><input type="checkbox" /></td> 
     <td><input type="checkbox" /></td> 
    </tr> 
</table> 

<input type="button" onclick="callFunction()" value="Click" /> 

---------------- --------------- JQuery-Code unten -----------------------------

<script type="text/javascript"> 
    function callFunction() { 
     //: 
     $('table input[type=checkbox]').attr('disabled', 'true'); 
    } 
</script> 
+0

Hallo, nach dem Klicken auf die Schaltfläche werden Sie sehen, dass alle vier Kontrollkästchen deaktiviert werden, wenn diese JS-Funktion aufrufen wird. Vielen Dank. –

Verwandte Themen