我正在尝试获取一组输入之间的输入索引。基本上,我有一个表,其中包含多行输入。
一旦用户按下“输入”按钮,当输入被聚焦时,我需要跳转到下一个输入字段,如“tab”键那样。
我正在关注this已接受的回复,这是我迄今为止所做的: Fiddle
CODE
$(document).keypress(function(e){
if( e.which == 13 && e.target.nodeName == 'INPUT'){
var inputs = $("#inputsTable input.td_in");
alert(inputs.index(this));
}
});
正如您所看到的,每次聚焦输入然后按ENTER,弹出消息都会显示“-1”..
我做错了什么?我一直在努力使用这段代码,我放弃了。
我发现用this
替换e.target
也有效。
CODE
$(document).keypress(function(e){
if( e.which == 13 && e.target.nodeName == 'INPUT'){
var inputs = $("#inputsTable input.td_in");
alert(inputs.index(e.target));
}
});
答案 0 :(得分:2)
这是因为this
引用了document
,而不是input
。
使用.on()
,并将其传递给input.td_in
选择器:
$('#inputsTable').on('keypress', 'input.td_in', function (e) {
if( e.which == 13 ) {
var inputs = $("#inputsTable input.td_in");
alert(inputs.index(this));
}
});
P.S。您应该cache that selector。
答案 1 :(得分:0)
$(document).on('keypress', 'input', function (e) {
if( e.which == 13 ){
var inputs = $("#inputsTable input");
var the_index = inputs.index(this);
inputs[the_index+1].focus();
}
});