5

我有一个仅为 iPad(Safari 浏览器)开发的小型 angularjs 应用程序。顶部有一个文本框,用作 ng-repeat 的过滤器。我想要实现的是一旦有人单击“GO”按钮就关闭 ipad 上的键盘。我看到关闭键盘的方法是模糊输入元素Hide The iPad Keyboard By Hitting the Return Key

我正在使用 AngularUI 库,所以我正在触发 onKeyUp 事件并检测回车键。

这是文本框的 html。我正在使用 ui-keypress 事件来调用 keypressCallback

<input ng-model="query" type="text" id="query" placeholder="product name or number" class="big radius" autocomplete="off" ui-keypress="{13:'keypressCallback($event)'}">

下面是 javascript 的缩减版本,其中仅包含 keypressCallback 函数

var GunnersenApp = angular.module( "GunnersenApp", ['ui'] );

GunnersenApp.controller(
'SwatchListCtrl',
function ($scope, $http) {      

    $scope.keypressCallback = function($event) {
        alert('enter');
        $event.preventDefault();
    };      

}
);

我试图将焦点设置在文档和正文上,这会模糊文本框,但我没有成功。

我正在研究的开发版本位于以下网址: http ://thejonesmobile.com/gunnersen/

提前致谢

4

2 回答 2

11

你为什么不使用input.blur()?我已将您的代码更改为:

$scope.keypressCallback = function($event) {
    $event.target.blur();
};

它奏效了。

于 2013-02-27T11:34:32.003 回答
0

简单的解决方案:

document.formName.fieldName.blur();
于 2015-07-06T22:10:51.473 回答