JavaScript聚焦于下一个输入字段。

4

我无法让这个工作,请帮忙。我有一个表格,每个TD都有一个输入文本字段。我希望在用户按下一个字母后,焦点转移到下一个TD中的下一个输入文本字段。我的代码不起作用...我正在使用primefaces:

<p:inputText value="#{officialVar.officialAnswer}"
    id="officialAnswer" maxlength="1"
    onblur="value=value.toUpperCase()"
    onkeyup="$(this).next('input').focus();" />

我在onkeyup事件中发布了一些警报,以下是结果:

alert($(this));
    [object Object]
alert($(this).value);
    undefined
alert($(this).next('input'))
    [object Object]

我该如何实现这个目标呢?谢谢。
编辑:如果在同一个TD中有两个字段,它将会起作用。
1个回答

3

是的,它不起作用,因为所有的 <input> 并不是同级元素,而是它们的父元素 <td>。请参见 next() API 文档。当你使用 next() 时,你是在引用元素的紧随其后的同级兄弟。

这应该可以工作:

onkeyup="$(this).parent('td').next('td').find('input').focus();"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接