javascript - 如何在一个函数中获取行数据并提交 from
问题描述
我正在使用下面的脚本来获取表格行数据,它工作正常
我想在同一次点击时合并表单提交功能
示例 - 当用户单击表格行功能应运行并提交所选表格行数据的数据
----点击行数据表单提交功能---
我尝试添加 document.theForm.submit( date.value = firstname ) 但未定义错误提交
var table = document.getElementById( 'myTable' ),
inputHash = {
'0': 'firstname',
'1': 'lastname',
'2': 'age',
'3': 'total',
'4': 'discount',
'5': 'diff'
};
for ( var i in inputHash )
inputHash[ i ] = document.getElementById( inputHash[ i ] );
table.addEventListener( 'click', function( evt ) {
var target = evt.target;
if ( target.nodeName != 'TD' )
return;
var columns = target.parentNode.getElementsByTagName( 'td' );
for ( var i = columns.length; i-- ; )
inputHash[ i ].value = columns[ i ].innerHTML;
} );
<table id="myTable" cellspacing="1">
<thead>
<tr>
<th>first name</th>
<th>last name</th>
<th>age</th>
<th>total</th>
<th>discount</th>
<th>diff</th>
</tr>
</thead>
<tbody>
<tr>
<td>peter</td>
<td>parker</td>
<td>28</td>
<td>9.99</td>
<td>20.3%</td>
<td>+3</td>
</tr>
<tr>
<td>john</td>
<td>hood</td>
<td>33</td>
<td>19.99</td>
<td>25.1%</td>
<td>-7</td>
</tr>
<tr>
<td>clark</td>
<td>kent</td>
<td>18</td>
<td>15.89</td>
<td>44.2%</td>
<td>-15</td>
</tr>
<tr>
<td>bruce</td>
<td>almighty</td>
<td>45</td>
<td>153.19</td>
<td>44%</td>
<td>+19</td>
</tr>
<tr>
<td>bruce</td>
<td>evans</td>
<td>56</td>
<td>153.19</td>
<td>23%</td>
<td>+9</td>
</tr>
</tbody>
</table>
<from name="theForm"
method="GET">
Firstname is:<input type="text" id="firstname" />
<br>
Lastname is:<input type="text" id="lastname" />
<br>
Age is:<input type="text" id="age" />
<br>
Total is:<input type="text" id="total" />
<br>
Discount is:<input type="text" id="discount" />
<br>
Diff is:<input type="text" id="diff" />
</from>
解决方案
你的表格tags
是错误的,把它们改成<form>
.
提交表单给它一个id
然后使用.submit()
var table = document.getElementById( 'myTable' ),
inputHash = {
'0': 'firstname',
'1': 'lastname',
'2': 'age',
'3': 'total',
'4': 'discount',
'5': 'diff'
};
for ( var i in inputHash )
inputHash[ i ] = document.getElementById( inputHash[ i ] );
table.addEventListener( 'click', function( evt ) {
var target = evt.target;
if ( target.nodeName != 'TD' )
return;
var columns = target.parentNode.getElementsByTagName( 'td' );
for ( var i = columns.length; i-- ; )
inputHash[ i ].value = columns[ i ].textContent;
document.getElementById("myform").submit()
} );
<table id="myTable" cellspacing="1">
<thead>
<tr>
<th>first name</th>
<th>last name</th>
<th>age</th>
<th>total</th>
<th>discount</th>
<th>diff</th>
</tr>
</thead>
<tbody>
<tr>
<td>peter</td>
<td>parker</td>
<td>28</td>
<td>9.99</td>
<td>20.3%</td>
<td>+3</td>
</tr>
<tr>
<td>john</td>
<td>hood</td>
<td>33</td>
<td>19.99</td>
<td>25.1%</td>
<td>-7</td>
</tr>
<tr>
<td>clark</td>
<td>kent</td>
<td>18</td>
<td>15.89</td>
<td>44.2%</td>
<td>-15</td>
</tr>
<tr>
<td>bruce</td>
<td>almighty</td>
<td>45</td>
<td>153.19</td>
<td>44%</td>
<td>+19</td>
</tr>
<tr>
<td>bruce</td>
<td>evans</td>
<td>56</td>
<td>153.19</td>
<td>23%</td>
<td>+9</td>
</tr>
</tbody>
</table>
<form id="myform" name="theForm"
method="GET">
Firstname is:<input type="text" id="firstname" />
<br>
Lastname is:<input type="text" id="lastname" />
<br>
Age is:<input type="text" id="age" />
<br>
Total is:<input type="text" id="total" />
<br>
Discount is:<input type="text" id="discount" />
<br>
Diff is:<input type="text" id="diff" />
</form>
推荐阅读
- azure - 如何通过命令行部署 Azure 云服务包?
- jquery - 如何通过 jQuery 设置 `aria-selected=true`
- php - 拉拉维尔 5.6。PHP 单元。顺序不敏感的 assertJson() 方法
- python - Python列表追加:每次迭代多个追加
- html - 在充满数据的表后面设置文件放置区
- ssh - 使用 Windows cmd 在 Debian VPS 上进行 SSH 密钥连接
- database - Firebase 每秒 1.000.000 次写入(带事务)
- javascript - 为什么 iframe 内的 Vanilla/jQuery 重定向 URL 被解码/编码?
- python - Python:将列单元格中的每个数组转换为单个字符串
- python - 为什么这个while循环进入无限状态而不是在3次迭代后停止?