You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多行表单:输入字段同名时如何更新指定行的输入框

解决方案

要实现点击按钮后更新对应行的输入字段值,只需做两处关键修改:

1. 调整HTML的按钮点击事件

将当前按钮元素作为参数传入avgIN函数,让函数能直接定位到按钮所在行:

<table>
<tr>
<td>Frank</td>
<td>Burns</td>
<td><input type="text" name="overtime" value="1000"></td>
<td><input type="button" name="averageIN" value="Average In" onclick="return avgIN(this, '1000','2000');">
</tr><tr>
<td>John</td>
<td>Doe</td>
<td><input type="text" name="overtime" value="500"></td>
<td><input type="button" name="averageIN" value="Average In" onclick="return avgIN(this, '500','2000');">
</tr>
</table>

2. 完善JavaScript函数逻辑

通过传入的按钮元素,逐级定位到对应行的输入框并更新值:

function avgIN(btn, orig, avg) {
    let text = "Request to Average In Overtime:\n\n"+
       "Current OT Total: "+orig+"\n"+
       "Averaged In Total: "+avg+"\n\n"+
       "Click OK to accept";
    if (confirm(text) == true) {
        // 找到按钮所在的表格行
        const targetRow = btn.closest('tr');
        // 在该行内定位name为overtime的输入字段
        const overtimeInput = targetRow.querySelector('input[name="overtime"]');
        // 更新输入字段的值
        overtimeInput.value = avg;
    } else {
        alert("Average In function canceled");
    }
}

逻辑说明

  • btn.closest('tr'):从点击的按钮元素向上查找最近的<tr>标签,精准锁定按钮所在行
  • targetRow.querySelector('input[name="overtime"]'):在目标行内直接筛选出name属性为overtime的输入框,避免全局查找导致的错误匹配

内容的提问来源于stack exchange,提问作者Don Merlin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 07:05:21