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

时间:2013-02-27 09:43:32

标签: javascript ipad angularjs

我有一个小的angularjs应用程序,我只为iPad(Safari浏览器)开发。顶部有一个文本框,用作ng-repeat的过滤器。我想要实现的是在有人点击“开始”按钮后关闭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/

提前致谢 GAV

2 个答案:

答案 0 :(得分:11)

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

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

它有效。

答案 1 :(得分:0)

简单的解决方案:

document.formName.fieldName.blur();