我有一个自动填充的表单(使用angular-ui boostrap typeaheade)和一些普通的输入元素。每当用户从预先输入(通过选项卡,输入或鼠标单击)中选择时,我希望焦点移动到下一个表单字段。相反,他们必须按Tab键/输入两次,一次选择,第二次跳转到下一个字段。
在ui-bootstrap的0.6.0版本中,我可以通过使用typeahead-on-select调用类似
的函数来实现这一点。$scope.onSelect = function() {
$timeout(function() {
// code involving element.closes('form').find('button,input,textarea,select')
});
}
但是,由于升级到当前的0.11.2版ui-bootstrap,我必须明确设置此超时的延迟。在我的开发机器上,10毫秒工作,"感觉"足够快,但这肯定是不可靠的:
$scope.onSelect = function() {
$timeout(function() {
// code involving element.closes('form').find('button,input,textarea,select')
}, 10);
}
(我看到基础类型代码开始包装"元素[0] .focus()"在0.6.0和0.11.2之间的超时。)
有没有办法实现我想要的行为,没有明显的超时延迟?