23

複数の行を持つテーブルがあります。テーブルにはチェックボックス付きの列がいくつかあります。その特定のセルからの入力を同じ行の他の入力に連結/結合することがチェックされている各チェックボックスをループする必要があります。

ここでフィドルを見ることができます: http://jsfiddle.net/QS56z/10/

行をループするだけでなく、<td>これを取得したらそれぞれをループするにはどうすればよいですか。その td<td>で名前が で始まる入力を探すにはどうすればよいですか。x見つかったら、それからの入力を行の入力に連結/結合します。

それが理にかなっていることを願っています。

本質的に:家族と学年が同じ行にあり、各行にいくつかのサイズがある(家族)を(サイズ)から(学年)に結合したい。各結果は、現在処理中の TD に書き込まれる必要があります。

私はこの時点まで来ましたが、立ち往生しています:

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
}

いつもありがとう。

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

私のhtmlは:

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

複数の行があることに注意してください。ありがとう。

4

2 に答える 2

47

更新しました

デモを更新しました: http://jsfiddle.net/terryyounghk/QS56z/18/

^=また、2つを に変更しました*=http://api.jquery.com/category/selectors/を参照してください。

そして、:checkedセレクターに注意してください。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()
            );

        });

    });
}
于 2013-04-23T14:11:34.637 に答える
11

これを試して:

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...
        });
    });
}
于 2013-04-23T14:01:42.977 に答える