在不关闭键盘的情况下以编程方式移动到移动浏览器中的下一个输入字段似乎是不可能的。(这是一个糟糕的设计,但这是我们必须处理的。)然而,一个聪明的技巧是用 Javascript 交换输入元素的位置、值和属性,这样看起来你实际上是在移动到下一个字段你仍然专注于同一个元素。这里是一个jQuery插件,掉期交易代码id
,name
和值。您可以根据需要调整它以交换其他属性。还要确保修复所有已注册的事件处理程序。
$.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/