2013-04-23 3 views
15

Ich habe eine Tabelle mit mehreren Zeilen. In der Tabelle gibt es mehrere Spalten mit Kontrollkästchen. Ich muss jedes der Kontrollkästchen durchlaufen, wo es überprüft wird, die Eingabe von dieser bestimmten Zelle mit anderen Eingaben aus derselben Zeile zu verknüpfen.jquery, um Tabellenzeilen und Zellen zu durchlaufen, wo Checkob überprüft wird, verketten

Sie hier eine Geige sehen: http://jsfiddle.net/QS56z/10/

Wie kann ich zusätzlich durch die Reihe zu Looping, Schleife durch jede <td> sobald ich diese <td> haben, wie kann ich nach einem Eingang, dessen Name beginnt mit x in diesem td. Sobald gefunden, verketten/verbinden Sie die Eingabe von diesem mit den Eingaben in der Zeile.

Ich hoffe, dass das Sinn macht.

im Wesentlichen: Ich möchte die (Familie) zu der (Größe) zur (Note), wo Familie und Klasse sind in der gleichen Zeile, und es gibt mehrere Größen in jeder Zeile. Jedes Ergebnis muss in den gerade bearbeiteten TD geschrieben werden.

Ich habe zu diesem Punkt gekommen, aber verhedderte:

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 
} 

Dank wie immer.

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

mein html ist:

<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"> 

bedenken gibt es mehrere Zeilen. Vielen Dank.

Antwort

36

AKTUALISIERT

ich Ihre Demo aktualisiert haben: http://jsfiddle.net/terryyounghk/QS56z/18/

Außerdem habe ich zwei geändert ^=-*=. Siehe http://api.jquery.com/category/selectors/

Und beachten Sie die :checked Selektor. Siehe 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, das macht mich so wütend. so einfach eine Antwort. Danke so sehr! – Smudger

+1

@Smudger Gern geschehen. Ich nehme an, das passt zu dem, was du beschrieben hast? Kann das als Antwort markiert werden? –

+0

100% richtig. Entschuldigung meine Konnektivität ist derzeit zweifelhaft. :-) Danke nochmal Terry! – Smudger

7

Versuchen Sie folgendes:

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

Danke, wird dies auf alle Kontrollkästchen oder nur geprüft? Ich brauche es nur für Kontrollkästchen aktiviert ... Danke Palash – Smudger

+1

Der obige Code wird nur die checkboxen durchlaufen. –

+0

Hi Palash, ich habe meinen Versuch einer Geige aktualisiert. http://jsfiddle.net/QS56z/12/ bitte können Sie mich weiter führen ... Danke. – Smudger

Verwandte Themen