[英]cursor jumps back to input field
我目前将光标自动对焦到特定字段,该字段按预期工作(显示模式时)。 问题是当我点击同一表格中的另一个字段并开始输入时,光标会跳回到具有autofocus属性的初始字段。 知道是什么导致了这个吗? 提前致谢
这是一个有角度的1.7项目。 我已经尝试将自动对焦功能移动到控制器内的不同位置,但这些都没有区别。
//控制器
angular.module('qmsControllers').controller('ResponseCodesModalCtrl', function($scope) {
$scope.giveFocus = function() {
$(**'#responsecode'**).focus();
return true;
};
});
//视图
<div class="form-group modal-form-group">
<label for="code" class="col-sm-2 control-label">Response Code:</label>
<input type="text" class="some class="0 === editMode"
ng-change="onResponseCodeChanged($event)"
**id="responsecode"**
**ng-show="giveFocus()"**
name="code" ng-model="response" />
</div>
预期的结果是在显示模态但允许在自动聚焦字段以外的字段中键入时发生的自动聚焦。
ng-show并不意味着你可能认为它意味着什么,ng-show控制是否应该显示元素,而不是“当我显示时执行这个功能”所以每次angular评估输入元素是否需要显示你的元素会触发onFocus。
如果只想在加载对话框时触发焦点,只需在控制器函数末尾调用$ scope.giveFocus()即可。 并删除ng-show属性
你也可以使用$ onInit方法一旦视图被初始化,这个方法将由angularjs调用,也许这个元素还没有在dom中。 所以像
this.$onInit = function() {
$(**'#responsecode'**).focus();
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.