无效的代码
$(document).ready(function() {
if the action is successful and returns a success message then Only{
document.getElementById("tabledataid_row").focus();
}
});
表数据内容
<table>
<tr>
<td id="tabledataid_row"></td>
</tr>
</table>
我希望在提交页面后将焦点放回到表格数据<td>
。例如,在Struts操作中,提交将表单返回到屏幕顶部。我尝试使用JavaScript方法focus()
,它适用于textfield或输入类型的元素。
但是当我为<td>
元素分配一个id然后在onload / document ready形式中选择它然后像上面那样调用focus()时,它就无效了。
请注意,我已经在各个地方插入了tabindex,这个元素id有tabindex 4.所以,我不想更改tabindex以获得焦点来到id。只有可视页面才能以所需字段可见的方式进行移动。
答案 0 :(得分:5)
您只能关注input
元素。您要做的是确保id
在视图中。您可以使用scrollIntoView()
实现您想要做的事情(“关注”HTML元素)。
document.getElementById("tabledataid_row").scrollIntoView();
答案 1 :(得分:1)
(从https://stackoverflow.com/a/3656524/1222635被盗)
给td一个tabindex属性。这使它具有可聚焦的能力。
<td id="tabledataid_row" tabindex="-1"></td>
更新
将tabindex设置为-1使得它只能通过脚本进行聚焦,这意味着用户无法选择它。