2013-01-14 2 views
0

이 테이블은 매우 클 수 있습니다. 왼쪽에 체크 박스로 선택할 수있는 단일 행을 포함하고 있거나 해당 테이블을 포함하는 그룹을 포함 할 수 있습니다 그룹을 선택하여 해당 그룹의 모든 개별 행을 선택할 수있는 개별 행. 는 지금은 그 내가 나를 위해 일하고 밤은이 "이"문이, 다음과 같습니다 각 기능 ...jquery 각 함수에서 이전 체크 박스가 선택되었는지 확인하는 방법

$('tbody :checked').each(function() { 
    //row counter here 
    if ($(this).prev("input:checkbox").is(':checked')){ 

그래서이 체크 무엇을 행를 확인하는 쿼리가 있습니다. 기본적으로 각 행에 입력 값이 있지만 확인란을 선택하지 않은 입력에서이 코드를 실행하지 않으려합니다. 따라서 각 함수에서 이전 체크 박스가 선택되었는지 확인한 다음 코드를 계속 진행하고 그렇지 않으면 건너 뜁니다. 그러나 개별 행에 대해이 작업을 쉽게 수행 할 수 있지만 그룹은 여러 테이블 행을 포함 할 수 있으므로 복잡해 지므로 가장 가까운 테이블 행을 요청하고 확인란을 선택했는지 확인할 수 없습니다.

그래서 입력 상자 앞에있는 첫 번째 체크 박스가 선택되어 있는지 확인하면됩니다.

감사

편집 ...
이 단일 행입니다 ...

<tr class="LotTableRow"> 
    <td class="ColLot" colspan="2"> 
     <label style="font-size: 90%; font-weight: normal; height: 10px"> 
      <input checked="checked" id="3" name="BidderLot" onclick="participateOnClick(this);" type="checkbox" value="true"><input name="BidderLot" type="hidden" value="false">           New Lot 
     </label> 
    </td> 
    <td class="ColQuantityRow"> 
     90 
    </td> 
    <td class="ColStartBid"> 
     <input class="text-box single-line BidderLotText" name="[0].BidderLots[0].StartBid" type="text" value="" alt="N/A" autocomplete="off"> 
    </td> 
</tr> 

이이 그룹이 될 수 있지만, 영원히 갈 수 ...

<tr class="LotTableRow" style="display:table-row"> 
    <td class="ColGroup" colspan="2"> 
     <input name="[2].AuctionId" type="hidden" value="c7df8b82-afa8-4709-ae08-f986523e38b9"> 
      <input name="[2].LotGroupId" type="hidden" value="3cca6186-db7e-411b-975c-f97e7c10119c"> 
     <label> 
      <input checked="checked" id="3cca6186-db7e-411b-975c-f97e7c10119c" name="BidderGroup" onclick="participateOnClick(this)" type="checkbox" value="true"><input name="BidderGroup" type="hidden" value="false">           dfgdfgdfg 
     </label> 
    </td> 
    <td class="EnglishBidderLotCol"> 
    </td> 
</tr> 
<tr class="LotTableRow"> 
    <td class="LotTableSpace"> 
    </td> 
    <td class="ColLot"> 
     New Lot 
    </td> 
    <td class="ColQuantityRow"> 
     20 
    </td> 
    <td class="ColStartBid"> 
     <input class="text-box single-line BidderLotText watermark" name="[2].BidderLots[0].StartBid" type="text" value="" alt="N/A"> 
    </td> 
</tr> 
+0

그래서 우리는 레이아웃을 볼 수있는 몇 가지 관련 HTML을 게시하시기 바랍니다 도움이되기를 바랍니다. – Archer

+0

몇 가지 샘플 HTML을 추가 할 수 있습니까? –

+0

또한, if 문이 잘못되었다는 것을 알고 있습니다. 그냥 시도한 마지막 것입니다. – Ben

답변

0

각 tr 안에 하나의 체크 박스가 있다고 가정하면이 작업이 가능합니다.

if ($(this).parents('tr:eq(0)').prev().find('input[type="checkbox"]:checked').length){ 

TD 요소 내에 이전 확인란이 없으므로 이전 선택기가 일치하지 않습니다. 하지만 당신이 생각한 HTML을 게시하지 않았기 때문에.

+0

이런 식으로 뭔가 내 개인 행에 대한 작동하지만, 그들은 내 자신의 "tr"의 확인란을 선택하지 않고 있기 때문에 그것이 나던 일을 내 그룹에 얻을 때 – Ben

0

흠, 다른 방법은 어때?

  1. 체크 각 항목하기 :

    jQuery를 ("TBODY 입력 : 체크 박스")

  2. 프로세스의 각 항목

    jQuery를 ("TBODY 입력 : 확인란") 찾으십시오. ("귀하의 코드를 실행하고자하는 것은 무엇이든간에") 각 (function() {});

나는이

+0

좋아, 내가 해냈어,하지만 난 여전히 같은 문제로 실행 내 그룹에 올 때. 그룹 내 텍스트 상자 만 원하면 – Ben

+0

@Ben, 그룹이있는 HTML 스 니펫을 게시하면됩니다. – Amd4632

관련 문제