2013-04-23 36 views
15

Tôi có một bảng có nhiều hàng. có một số cột trong bảng có các hộp kiểm. Tôi cần phải lặp qua mỗi hộp kiểm, nơi nó được kiểm tra nối/nối đầu vào từ ô cụ thể đó với các đầu vào khác từ cùng một hàng.jquery để lặp qua các hàng và ô của bảng, trong đó checkob được chọn, nối

bạn có thể thấy một fiddle đây: http://jsfiddle.net/QS56z/10/

Làm thế nào tôi có thể, ngoài việc Looping qua liên tiếp, lặp qua mỗi <td> một khi tôi có <td> này làm thế nào tôi có thể tìm kiếm một đầu vào có tên bắt đầu với x trong đó td. một khi tìm thấy nối/nối đầu vào từ đó với các đầu vào trong hàng.

Tôi hy vọng điều đó có ý nghĩa.

về cơ bản: Tôi muốn tham gia (gia đình) đến (kích thước) đến (cấp) nơi gia đình và cấp lớp trên cùng một hàng và có nhiều kích thước trên mỗi hàng. mỗi kết quả phải được ghi vào TD hiện đang được xử lý.

Tôi đã đứng dậy đến thời điểm này nhưng đã bị mắc kẹt:

function createcodes(){ 
    alert('running'); 
    //run through each row 
    $('.authors-list tr').each(function(){ 
     //processing this row 
      //how to process each cell(table td) where there is checkbox 
     $($(this).find('input[name^="line"]').val(

      $('$(this).find('input[name^="family"]'').val() + ' ' + // common input(family) on row, use for all table cells(td) 
      $('#$(this).find('input[name^="size"]'').val() + ', ' + // this cells input called size, unique to this cell only 
      $('#$(this).find('input[name^="grade"]'').val() // common input(grade) on row, use for all table cells(td) 
     ); 
      // end of cell row processing 
     }); 
     //end of rows processing 
} 

Cảm ơn như mọi khi.

http://jsfiddle.net/QS56z/10/

html của tôi là:

<table class="authors-list" border=1 id="ordertable"> 
<tr> 
    <td ><input type="text" id="product1" name="product1" class="rounded" value="38114CR"></td> 
    <td ><input type="text" size='5' id="qty1" name="qty1" class="rounded" value="10"/></td> 
    <td class="tdcheckbox"> 
     <input type="checkbox" id="h09_1" name="h09_1" checked class="rounded"/> 
     <input type="text" id="line_1_09" name="line_1_09" > 
     <input type="text" id="size_1_09" name="size_1_09" value="09"> 

    </td> 
    <td class="tdcheckbox"> 
     <input type="checkbox" id="h12_1" name="h12_1" class="rounded"/> 
     <input type="text" id="line_1_12" name="line_1_12" value=""> 
     <input type="text" id="size_1_12" name="size_1_12" value="12"> 
    </td> 
    <td class="tdcheckbox"> 
     <input type="checkbox" id="h15_1" name="h15_1" checked class="rounded"/> 
     <input type="text" id="line_1_15" name="line_1_15" > 
     <input type="text" id="size_1_15" name="size_1_15" value="15"> 
    </td> 
    <td><input type="text" name="cubespercheck_1" id="cubespercheck_1" value="0" size=5></td> 
    <td><input type="text" name="skufamily_1" id="skufamily_1" value="38114"></td> 
    <td><input type="text" name="skugrade_1" id="skugrade_1" value="cr"></td> 
</tr> 
</table> 
<input type="button" id="continue" value="continue"> 

ghi nhớ có nhiều hàng. Cảm ơn.

Trả lời

36

CẬP NHẬT

Tôi đã cập nhật bản demo của bạn: http://jsfiddle.net/terryyounghk/QS56z/18/

Ngoài ra, tôi đã thay đổi hai ^=-*=. Xem http://api.jquery.com/category/selectors/

Và lưu ý bộ chọn :checked. Xem http://api.jquery.com/checked-selector/

function createcodes() { 

    //run through each row 
    $('.authors-list tr').each(function (i, row) { 

     // reference all the stuff you need first 
     var $row = $(row), 
      $family = $row.find('input[name*="family"]'), 
      $grade = $row.find('input[name*="grade"]'), 
      $checkedBoxes = $row.find('input:checked'); 

     $checkedBoxes.each(function (i, checkbox) { 
      // assuming you layout the elements this way, 
      // we'll take advantage of .next() 
      var $checkbox = $(checkbox), 
       $line = $checkbox.next(), 
       $size = $line.next(); 

      $line.val(
       $family.val() + ' ' + $size.val() + ', ' + $grade.val() 
      ); 

     }); 

    }); 
} 
+0

Terry, điều này khiến tôi rất tức giận. câu trả lời đơn giản như vậy. Cảm ơn rất nhiều! – Smudger

+1

@Smudger Bạn được chào đón. Tôi cho rằng điều này phù hợp với những gì bạn mô tả? Điều này có phù hợp để được đánh dấu là câu trả lời không? –

+0

chính xác 100%. xin lỗi kết nối của tôi là hiện tại. :-) Cảm ơn một lần nữa Terry! – Smudger

7

Hãy thử điều này:

function createcodes() { 

    $('.authors-list tr').each(function() { 
     //processing this row 
     //how to process each cell(table td) where there is checkbox 
     $(this).find('td input:checked').each(function() { 

      // it is checked, your code here... 
     }); 
    }); 
} 
+0

Cảm ơn, điều này sẽ xem xét tất cả các hộp kiểm hoặc chỉ những hộp kiểm được kiểm tra? Tôi cần nó cho các hộp kiểm tra chỉ ... Cảm ơn Palash – Smudger

+1

Đoạn mã trên sẽ chỉ lặp qua các hộp kiểm được chọn. –

+0

Xin chào Palash, tôi đã cập nhật nỗ lực của tôi tại một câu đố. http://jsfiddle.net/QS56z/12/ xin vui lòng bạn có thể hướng dẫn tôi thêm ... cảm ơn. – Smudger

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