2014-09-11 20 views
5

Tôi đang tạo bảng HTML động với JQuery. Mã mẫu dưới đây.Bật phần tử bảng HTML vô hiệu hóa với JQuery bị vô hiệu hóa <TR>

var tbody=$("#myTable tbody"); 

var tableRow; 

if(somevariableIsTrue) 
    tableRow=$("<tr>").attr("disabled",true); 
else 
    tableRow=$("<tr>"); 

var td=$("<td>"); 
    td.appendTo(tableRow); 

var tdn=#("<td>"); 
tdn.appendTo(tableRow); 

tableRow.appendTo(tbody); 

bây giờ tôi tạo các TD khác nhau và nối thêm vào bảngRow. Nếu thuộc tính bị vô hiệu hóa của hàng là TRUE thì tất cả các TD cho hàng đó cũng sẽ bị vô hiệu hóa. Nhưng tôi muốn rằng TD đầu tiên của hàng tàn tật của tôi không nên bị vô hiệu hóa như một cột hộp kiểm của nó trên nhấp chuột của nó Tôi muốn kích hoạt/vô hiệu hóa cùng một hàng. Tôi đã thử những cách khác nhau để có được hộp kiểm trong cột đầu tiên và cố gắng để kích hoạt nó nhưng tất cả đều thất bại. một số người ta có thể gợi ý cho tôi làm thế nào để làm điều này trong JQuery

EDIT Hope ảnh chụp màn hình này giúp chúng ta hiểu yêu cầu của tôi enter image description here

như thể hiện trong hình ảnh hàng đầu tiên bị vô hiệu hóa trong đó có td đầu tiên với hộp kiểm. Tôi muốn kiểm tra cột để được kích hoạt tất cả các thời gian để kiểm tra nó hàng trở nên được kích hoạt và bỏ kiểm tra lá hàng bị vô hiệu hóa một lần nữa.

+5

Lệnh 'tr' yếu tố không có một 'thuộc tính disabled' . Nếu bạn muốn vô hiệu hóa các đầu vào bên trong 'tr' đó, bạn cần phải thêm thuộc tính cho tất cả các đầu vào riêng lẻ. –

+0

Vâng nó hoạt động với tr và vô hiệu hóa tất cả các yếu tố khác trong tr đó theo yêu cầu. Tôi không muốn lặp lại từng td để cho phép vô hiệu hóa các yếu tố vì vậy tôi đã chọn phương pháp này. –

+0

Bạn cũng nên xem xét một động cơ templating nhẹ. – Blowsie

Trả lời

0

Bạn chỉ có thể gọi

$('input[type=checkbox]').removeAttr('disabled'); 

hoặc

$('input[type=checkbox]').prop('disabled', false); 

trên tất cả các hộp kiểm của bạn. Điều này sẽ cơ bản kích hoạt lại tất cả các hộp kiểm của bạn

2

Đây là một giải pháp đơn giản:

// first row checkboxes 
$('tr td:first-child input[type="checkbox"]').click(function() { 
    //enable/disable all except checkboxes, based on the row is checked or not 
    $(this).closest('tr').find(":input:not(:first)").attr('disabled', !this.checked); 
}); 

Xem nó làm việc trong này JSFiddle

Các vấn đề liên quan