我有一个有四列的表。
我希望用户在任何单列中的所有输入单元格中捕获值。
==>象征着ENTER按键 示例:如果用户决定仅捕获Day02列中的值,则表遍历应为: 124 ==> 127 ==> 130 ==> 134
如果用户决定仅捕获Day03列中的值,则表遍历应为: 126 ==> 129 ==> 130 ==> 131
有些人可以使用jquery,keyup事件处理程序和focus()方法编写引号。
提前谢谢
<table border="1" cellpadding="0" cellspacing="0" id="keytable" style="width: 500px;">
<tbody>
<tr>
<th id="headcol">Data Element</th>
<th>Day01</th>
<th>Day02</th>
<th>Day03</th>
</tr>
<tr>
<td id="headcol"><strong>medical dose A</strong></td>
<td id="actdata"><input id="124"/></td>
<td id="actdata"><input id="125"/></td>
<td id="actdata"><input id="126"/></td>
</tr>
<tr>
<td id="headcol"><strong>medical dose B</strong></td>
<td id="actdata"><input id="127"/></td>
<td id="actdata"><input id="128"/></td>
<td id="actdata"><input id="129"/></td>
</tr>
<tr>
<td id="headcol"><strong>medical dose C</strong></td>
<td id="actdata"><input id="130"/></td>
<td id="actdata"><input id="131"/></td>
<td id="actdata"><input id="132"/></td>
</tr>
<tr>
<td id="headcol"><strong>medical dose D</strong></td>
<td id="actdata"><input id="133"/></td>
<td id="actdata"><input id="134"/></td>
<td id="actdata"><input id="135"/></td>
</tr>
</tbody>
</table>
答案 0 :(得分:1)
感谢您的贡献@nevermind。来自On enter key move to next cell down in a table的以下代码已部分解决了我的问题。
代码是
var inputs = $("#keytable :input");
inputs.on("keypress keyup",function(e) {
if (e.keyCode == 13) {
var $this = $(this),
index = $this.closest('td').index();
$this.closest('tr').next().find('td').eq(index).find('input').focus();
e.preventDefault();
e.stopPropagation();
}
});
但是,在此应用程序的核心中,还有另一个按键/键盘事件,它在添加我自己的按键/键后触发。这个前一个按键/键盘将光标移动到同一行中的下一个单元格,后者将鼠标光标移动到同一列中的下一个单元格。是否有可能抑制/阻止前者在我的密钥表对象上触发而不删除以前的代码?
答案 1 :(得分:0)
我无法为您编写代码。但我可以给出一个可能的解决方案的建议。 您可以在每列上保留不同的类。
e.g。
<tr>
<td class="c1"></td>
<td class="c2"></td>
<td class="c3"></td>
</tr>
<tr>
<td class="c1"></td>
<td class="c2"></td>
<td class="c3"></td>
</tr>
然后使用要获取列值的列的类名。
e.g。第一栏
var firstColumnItems = document.getElementsByClassName("c1");