2014-09-11 2 views
5

JQuery를 사용하여 동적 HTML 테이블을 생성하고 있습니다. 샘플 코드는 다음과 같습니다.비활성화 된 JQuery와 함께 HTML 테이블 요소를 사용하지 않도록 설정하십시오. <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); 

이제 다른 TD를 만들고 tableRow에 추가합니다. 행의 비활성화 된 속성이 TRUE이면 분명히 해당 행에 대한 모든 TD도 비활성화됩니다. 하지만 난 그 장애가있는 행의 첫 번째 TD는 그 행을 비활성화/비활성화 같은 행 싶지 클릭하여 해당 확인란의 열로해서는 안됩니다. 첫 번째 열에서 확인란을 선택하는 데 여러 가지 방법을 시도했지만 사용하도록 설정했지만 모두 실패합니다. 어떤 사람은 어떻게 JQuery와

에서이 작업을 수행하는

편집 희망이 스크린 샷은 체크 박스와 최초의 TD 포함되지 않습니다 이미지 첫 번째 행에서 볼 수 있듯이 내 요구 사항을 enter image description here

을 이해하는 데 도움이 저를 제안 할 수 있습니다. 체크 박스 열을 항상 활성화하여 열을 확인하면 행이 활성화되고 확인을 취소하면 행이 다시 비활성화됩니다.

+5

에서 일하는'tr' 요소는'disabled' 속성이없는 참조 : 이것은 본질적으로 여기 –

+0

글쎄 그것은 tr와 함께 작동하고 필요에 따라 tr에있는 다른 모든 요소를 ​​비활성화합니다. 나는이 메소드를 선택하기 위해 요소를 비활성화 할 수 있도록 각 td를 반복하고 싶지 않습니다. –

+0

가벼운 템플릿 엔진도 고려해야합니다. – Blowsie

답변

0

당신은 모든 체크 박스에

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

또는

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

를 호출 할 수 있습니다.

// 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); 
}); 

가이 JSFiddle

2

간단한 솔루션입니다 귀하의 확인란을 모두 다시 활성화 할 것 . 해당`tr`에서 입력을 비활성화하려면 모든 속성을 개별적으로 추가해야합니다.
관련 문제