Angular解决输入框由禁用状态转可用状态自动获取焦点失效问题
2016-10-01 20:23
766 查看
有时为了方便操作,我们会为输入框设置默认焦点。而且会设置输入权限,会禁止用户输入。
但是当从禁止输入切换为可输入的时候,输入框却不能设置焦点了。
原因的话,我看了一下,估计是当我们改变输入框绑定的值得时候,输入框并没有切换状态,还是禁用状态,所以我们无法设置焦点,就是执行顺序的问题。
上代码吧,写个指令,设置输入框焦点。
效果:
此文档的作者:justforuse
Github Pages:justforuse
但是当从禁止输入切换为可输入的时候,输入框却不能设置焦点了。
原因的话,我看了一下,估计是当我们改变输入框绑定的值得时候,输入框并没有切换状态,还是禁用状态,所以我们无法设置焦点,就是执行顺序的问题。
上代码吧,写个指令,设置输入框焦点。
<!DOCTYPE html> <html ng-app="app"> <head> <meta charset="UTF-8"> <title></title> <script src="jquery.js"></script> <script src="angular.js"></script> <script> angular.module("app", []) .controller("ctrl", function($scope) { $scope.data = [{ name: "aaa", type: "string" }, { name: "bbb", type: "int" }, { name: "ccc", type: "float" }]; $scope.init = function() { $scope.dim = $scope.data[0]; } $scope.changeDim = function(i){ $scope.dim = i; } }) .directive("setFocus", function(){ return { scope:{ ngModel:"=" }, link:function(scope, element, attrs){ scope.$watch("ngModel", function(n, o){ element.focus(); }) } } }) </script> </head> <body ng-init="init()" ng-controller="ctrl"> <ul> <li ng-repeat="item in data" ng-click="dim = item"> <a ng-click="changeDim(item)">{{item.name}}</a> </li> </ul> <input type="text" id="name" ng-disabled="dim.type == 'string'" ng-model="dim.name" set-focus> </body> </html>
效果:
此文档的作者:justforuse
Github Pages:justforuse
相关文章推荐
- edittext焦点自动获取问题解决
- 解决listview的item中有Button、ImageButton等自动获取焦点的控件时,item获取不到焦点问题
- 解决刚进入APP时搜索框获取焦点,软键盘自动弹出的问题
- 【Android - 问题解决】之EditText自动获取焦点问题
- 解决安卓全屏“FLAG_FULLSCREEN”状态下“adjustResize”失效,全屏状态下WebView的输入框被软键盘挡住的问题
- 解决android EditText自动获取焦点的问题
- HTML中Input输入框提示/设置禁用/自动获取焦点
- 解决EditText自动获取焦点问题
- 巧用RxJava解决网络连接失败问题及Token失效自动获取问题
- 完美解决 Android WebView 文本框获取焦点后自动放大问题
- 解决安卓全屏“FLAG_FULLSCREEN”状态下“adjustResize”失效,全屏状态下WebView的输入框被软键盘挡住的问题
- (转)完美解决 Android WebView 文本框获取焦点后自动放大有关问题
- 解决 Android WebView 文本框获取焦点后自动放大问题
- EditText自动获取焦点并弹出输入法的问题
- 网页随鼠标滚动自动加载 之 网页缩放后失效问题解决方法
- 如何利用PopupWindow实现弹出菜单并解决焦点获取以及与软键盘冲突问题
- 解决Ubuntu开机自动挂载硬盘回收站不可用等权限问题
- Android EditText默认就会自动获取焦点 软件盘遮挡组件问题
- 解决火狐下焦点无法重复获取问题------神器版!
- 禁用WAS自动生成 LTPA 密钥,解决密钥过期问题