如何将表格选中行的公司名称列内容赋值给表单输入框
问题分析与修复方案
原代码的核心问题
- 层级获取错误:传入函数的
e是按钮元素,调用e.getElementsByTagName('td')找不到任何<td>——按钮本身是<td>的子元素,得先往上找它所在的表格行。 - 列索引搞错:公司名称(İşyeri Adı)在表格第三列,对应数组索引是
2(数组从0开始计数),原代码用tds[1]取到的是第二列的税号内容。
修复后的代码
JavaScript部分
function callme(btn) { // 定位按钮所在的表格行 const row = btn.parentElement.parentElement; // 获取当前行所有单元格 const tds = row.getElementsByTagName('td'); // 提取第三列的公司名称,赋值给输入框 document.getElementById("txtFirmaAdi").value = tds[2].innerHTML.trim(); // 阻止submit按钮的默认提交行为,避免页面刷新 return false; }
HTML可选优化
如果按钮不需要提交表单,建议把type="submit"改成type="button",彻底避免页面刷新问题:
<td><input type="button" name="ctl03$ucOzgecmisTecrube$ctlGridSgkTecrube$ctl02$btnAktar" value="Aktar" onclick="return callme(this);" id="ctl03_ucOzgecmisTecrube_ctlGridSgkTecrube_ctl02_btnAktar" class="inp"></td>
生效逻辑
点击按钮时,会先定位到按钮所在的表格行,提取该行第三列的公司名称文本,最终赋值给txtFirmaAdi输入框,同时阻止页面跳转刷新,确保效果正常生效。
内容的提问来源于stack exchange,提问作者Haluk Öztürk
相关产品推荐
相关产品推荐

