离子键盘专注于输入框问题

时间:2015-09-08 13:13:41

标签: android angularjs ionic-framework

我正在使用角度与离子

我使用了以下代码

<input type="number" name="foo" ng-model="field.field_value" class="form-number" ng-focus="keyboardFocus(this)" >

$scope.keyboardFocus=function(t){
            var a= $(t).attr('class');
            alert(a);  
          // $ionicScrollDelegate.scrollBottom();
          // $ionicScrollDelegate.$getByHandle(t).scrollTop();
            $("."+a).css('position','absolute');
            $("."+a).css('top','0px');
           }

但滚动在文本框上的当前位置不起作用。键盘焦点文本框不起作用,但键入任何文本foucus正在工作

2 个答案:

答案 0 :(得分:3)

Imho,无需使用$ionicScrollDelegate,更改位置,手动滚动或任何其他复杂的内容。

您只需安装Ionic Keyboard Cordova plugin即可。请参阅解释here

要安装它: cordova plugin add com.ionic.keyboard

别无他法。在焦点上,页面将自动移动。

当然,它只适用于真实设备,但根据我的经验,使用此插件时,重点表单元素永远不会隐藏在键盘下。

答案 1 :(得分:0)

最好的方法是使用$ionicScrollDelegate,因为您需要以这种方式定义元素的delegate-handle值:

<input type="number" name="foo" ng-model="field.field_value" class="form-number" delegate-handle="myInput" ng-focus="keyboardFocus('myInput')" >

然后以这种方式传递到keyboardFocusng-focus="keyboardFocus('myInput')"

功能将变为

$scope.keyboardFocus=function(handleValue){    
      $ionicScrollDelegate.$getByHandle(handleValue).scrollTop();
 }