在不关闭键盘的情况下以编程方式移动到移动浏览器中的下一个输入字段似乎是不可能的。(这是一个糟糕的设计,但这是我们必须使用的。)然而,一个聪明的技巧是用 Javascript 交换输入元素的位置、值和属性,这样看起来你正在移动到下一个字段,而实际上你仍然专注于同一个元素。id
这是交换、name
和 值的 jQuery 插件的代码。您可以根据需要对其进行调整以交换其他属性。还要确保修复任何已注册的事件处理程序。
$.fn.fakeFocusNextInput = function() {
var sel = this;
var nextel = sel.next();
var nextval = nextel.val();
var nextid = nextel.attr('id');
var nextname = nextel.attr('name');
nextel.val(sel.val());
nextel.attr('id', sel.attr('id'));
nextel.attr('name', sel.attr('name'));
sel.val(nextval);
sel.attr('id', nextid);
sel.attr('name', nextname);
// Need to remove nextel and not sel to retain focus on sel
nextel.remove();
sel.before(nextel);
// Could also return 'this' depending on how you you want the
// plug-in to work
return nextel;
};
在这里演示:http: //jsfiddle.net/EbU6a/194/