使用angularjs单击enter后运行textbox.blur

Gav*_*uce 5 javascript ipad angularjs

我有一个小的angularjs应用程序,我只为iPad(Safari浏览器)开发.顶部有一个文本框,用作ng-repeat的过滤器.我想要实现的是在有人点击"开始"按钮后关闭ipad上的键盘.我看到关闭键盘的方法是模糊输入元素通过点击返回键隐藏iPad键盘

我正在使用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)'}">
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

}
);
Run Code Online (Sandbox Code Playgroud)

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

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

在此先感谢Gav

Cai*_*nha 11

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

$scope.keypressCallback = function($event) {
    $event.target.blur();
};
Run Code Online (Sandbox Code Playgroud)

它奏效了.