0

同じ名前の入力フィールドを持つ複数の行を持つテーブルがあります

<tr>
    <td>
        <input type=text name=icode[] id=icode>
    </td>
    <td>
        <input type=text name=description[] id=description>
    </td>
    <td>
        <input type=text name=rprice[] id=rprice>
    </td>
    <td>
        <input type=text name=discount[] id=discount>
    </td>
    <td>
        <input type=text name=fprice[] id=fprice>
    </td>
</tr>

ここで、フォーカスアウト関数を使用して、データベースからdescriptionとrpriceの値を入力します。しかし、私は同じ行に対してそれを行うことができません。閲覧中に、このコードを見つけました

 $(_this).parents('tr').find('#description').val(obj.description);

ただし、すべての行と特定の行が更新されます。

したがって、基本的に、行2のicodeに1を入力する場合、行2の説明とrpriceを、すべての行だけでなく更新する必要があります。

参考のためにサンプルコードを投稿しました:http://jsfiddle.net/nA7RL/

前もって感謝します。

4

2 に答える 2

2

親の代わりに親を使用します。

$(_this).parent().parent('tr').find('#description').val(obj.description);

jqueryから:http://api.jquery.com/parents/

.parents()メソッドと.parent()メソッドは似ていますが、後者はDOMツリーの1レベル上を移動するだけです。

あなたの場合、parentsメソッドはより高いレベルのtrに移動し、そこから、findメソッドは既存のすべての説明フィールドを検索します。

于 2012-12-11T06:28:04.893 に答える
0

要素のIDは一意である必要があります。IDが重複している場合、それらは機能しません。class代わりに使用してください。

HTML

<table>
    <tr>
        <td>
            <input type="text" name="icode[]" class="icode">
        </td>
        <td>
            <input type="text" name="description[]" class="description">
        </td>
        <td>
            <input type="text" name="rprice[]" class="rprice">
        </td>
        <td>
            <input type="text" name="discount[]" class="discount">
        </td>
        <td>
            <input type="text" name="fprice[]" class="fprice">
        </td>
    </tr>
    <tr>
        <td>
            <input type="text" name="icode[]" class="icode">
        </td>
        <td>
            <input type="text" name="description[]" class="description">
        </td>
        <td>
            <input type="text" name="rprice[]" class="rprice">
        </td>
        <td>
            <input type="text" name="discount[]" class="discount">
        </td>
        <td>
            <input type="text" name="fprice[]" class="fprice">
        </td>
    </tr>
</table>
​

Javascript

$('.icode').on('change', function() {
    $(this).parents('tr').find('.description').val($(this).val());
});

デモ

于 2012-12-11T06:36:49.487 に答える