我有jQuery autocomplete附加到文本框,当我按输入选择autocomplete
项时,它会聚焦下一个输入。但是当我通过鼠标click
选择项目时,它会聚焦第一个输入而不是下一个输入。
我的输入是ASP.Net输入,每个输入都有tabindex
。
到目前为止,我所尝试的是
jQuery代码:
$("#txtArea").autocomplete({
source: function (request, response) {
var outputList = LoadAutocompleteResult(areaNameList, request.term);
response(outputList);
},
close: function () {
var ti = $("#txtArea").attr('tabindex') + 1;
$('[tabindex=' + ti + ']').focus();
}
});
还尝试了以下
$("#txtArea").autocomplete({
source: function (request, response) {
var outputList = LoadAutocompleteResult(areaNameList, request.term);
response(outputList);
},
select: function () {
var ti = $("#txtArea").attr('tabindex') + 1;
$('[tabindex=' + ti + ']').focus();
}
});
答案 0 :(得分:0)
大多数JavaScript引擎会对待:
var ti = $("#txtArea").attr('tabindex') + 1;
作为连接而不是添加,因此ti
变量的"1"
附加了它的初始值。解决方案是在尝试递增数字之前将ti
解析为数字,或者使用专门设计用于递增它的运算符(将字符串转换为过程中的数字)。
var ti = parseInt($("#txtArea").attr('tabindex'), 10) + 1;
或
var attr = $("#txtArea").attr('tabindex'),
ti = attr++; // caveat here is that, if ti = 1, attr will be 2
否则您将尝试关注$('[tabindex=11]')
,而不是$('[tabindex=2]')
;