我有一个小的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
答案 0 :(得分:11)
为什么不使用input.blur()
?我已将您的代码更改为:
$scope.keypressCallback = function($event) {
$event.target.blur();
};
它有效。
答案 1 :(得分:0)
简单的解决方案:
document.formName.fieldName.blur();