Javascript 关注页面上任意位置的下一个输入元素
以这一节为例。 有两个文本框(页面上的任意位置)。 当用户按Enter键时,我试图将焦点从第一个输入设置为下一个输入。Javascript 关注页面上任意位置的下一个输入元素,javascript,jquery,html,Javascript,Jquery,Html,以这一节为例。 有两个文本框(页面上的任意位置)。 当用户按Enter键时,我试图将焦点从第一个输入设置为下一个输入。 在JQuery中如何实现这一点?您可以使用JQuery的.keypress事件 HTML <div> <table><tr><td><input type="text"/></td></tr></table> </div> <div> <tabl
在JQuery中如何实现这一点?您可以使用JQuery的
.keypress
事件
HTML
<div>
<table><tr><td><input type="text"/></td></tr></table>
</div>
<div>
<table><tr><td><input type="text"/></td></tr></table>
</div>
工作演示:
希望这有帮助
$(document).ready(function(){
$('#first').keypress(function(e){
if(e.keyCode ==13)
{
$('#second').focus();
}
})
});
工作试试这个:)
$(文档)。按键(功能(e){
如果(e.which==13){
var focusElem=document.activeElement;
var nextInput=$(focusElem.next().attr('id');
$(“#”+nextInput).focus();
}
});代码>
$(文档).ready(函数(){
$('input[type=text]')。按键(函数(e){
如果(e.keyCode==13){
if($(this.attr('class')=“last”){
$('input[type=text]').eq(0).focus()
}否则{
$('input[type=text]')。最近('input[type=text]')。焦点();
}
}
});
});代码>
试试这个这会对你有帮助
$(文档).ready(函数(){
$('input')。打开(“按键”,功能(e){
如果(e.which==13){
var tab=$(this.attr(“tabindex”)+1
$(“输入[tabindex=“+tab+”])。焦点();
}
});
});代码>
您可以为所有输入元素提供一个类(如果您的文档中没有输入类型的文本元素,而您不想将焦点放在该元素上,则可以通过“输入文本”标记执行相同的操作),并且可以找到具有相同类的下一个输入元素
$(“.test”).按键(功能(e){
var输入=$(“.test”);
如果(e.which==13){
var$next=inputs.filter(“:gt(“+inputs.index(this)+”).first();
$next.focus();
}
});代码>
您可以尝试其他选择,如
HTML:
$(document).on("keydown", "#Textbox1", function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 13) {
e.preventDefault();
$("#Textbox2").focus();
}
});
只是一个小提示,你知道这是违反直觉的,对吗?通常在表单中使用Enter键提交论坛,而按Tab键通常会将您带到表单中的下一个字段。如果你打算改变这种行为,人们可能会感到困惑。是的,我完全知道这一点。我提到的回车键只是想告诉大家我是什么时候开始做的。如果只是这个想法而不是键,那么就使用tabindex和tab键
tabindex将是您的解决方案尝试它可能的重复在我的情况下不会真正有效,因为我的页面将有大约20个文本框,遵循这种方法意味着我必须将函数分配给每个文本框。$(This).next('input.text').focus()代码>将完成此操作。检查更新的fiddle here=>输入元素不是兄弟元素。在这种情况下,.next()将不起作用。如果当前文本框是最后一个文本框,它仍然不会返回到上一个控件!在我的问题中,严格地证明了输入元素不是兄弟元素。parseInt是必需的
$(document).on("keydown", "#Textbox1", function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 13) {
e.preventDefault();
$("#Textbox2").focus();
}
});
<div>
<table><tr><td><input type="text" class='inputs'/></td></tr></table>
</div>
<div>
<table><tr><td><input type="text" class='inputs'/></td></tr></table>
</div>
$(document).on("input", "input", function(e){
if(e.which == 13){
$(this).next('.inputs').focus();
}
});