2013-02-27 31 views
5

Tôi có một ứng dụng angularjs nhỏ mà tôi đã phát triển chỉ dành cho iPad (trình duyệt Safari). Có một hộp văn bản ở trên cùng được sử dụng như một bộ lọc trên một ng-lặp lại. Những gì tôi đang cố gắng đạt được là đóng bàn phím trên ipad khi ai đó nhấp vào nút 'GO'. Tôi thấy cách đóng bàn phím là làm mờ phần tử đầu vào Hide The iPad Keyboard By Hitting the Return Keychạy textbox.blur sau khi nhấp vào nhập bằng angularjs

Tôi đang sử dụng thư viện AngularUI để tôi kích hoạt sự kiện onKeyUp và đang phát hiện phím enter.

Đây là html cho hộp văn bản. Tôi đang sử dụng sự kiện ui-bấm phím gọi keypressCallback

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

Dưới đây là một phiên bản cutdown của javascript mà chỉ chứa các chức năng keypressCallback

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

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

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

} 
); 

Tôi đã cố gắng để thiết lập focus cho tài liệu và cơ thể sẽ làm mờ hộp văn bản nhưng tôi đã không thành công.

Các phiên bản phát triển của những gì tôi đang làm việc trên là url sau: http://thejonesmobile.com/gunnersen/

Cảm ơn trước Gav

Trả lời

11

Tại sao bạn không sử dụng input.blur()? Tôi đã thay đổi mã của bạn thành:

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

Và nó đã hoạt động.

+0

nhờ đống. tôi không biết về $ event.target –

+0

Bất cứ lúc nào. Nó chỉ là [sự kiện] ban đầu được tiêm (https://developer.mozilla.org/en-US/docs/DOM/event). –

0

Giải pháp đơn giản:

document.formName.fieldName.blur(); 
Các vấn đề liên quan