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>

现在使用 on focusout 函数我想从数据库中填充 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 树上向上移动一层。

在您的情况下, 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 回答