5

iPad(サファリブラウザ)用に開発した小さなangularjsアプリがあります。上部に、ng-repeat のフィルターとして使用されるテキスト ボックスがあります。私が達成しようとしているのは、誰かが「GO」ボタンをクリックするとiPadのキーボードを閉じることです。キーボードを閉じる方法は、input 要素をぼかすことだとわかりました。Return キーを押して iPad キーボードを非表示にします。

私は AngularUI ライブラリを使用しているので、onKeyUp イベントを発生させ、Enter キーを検出しています。

テキストボックスの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)'}">

以下は、keypressCallback 関数のみを含む JavaScript の短縮バージョンです。

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

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

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

}
);

テキストボックスをぼかすドキュメントと本文にフォーカスを設定しようとしましたが、成功しませんでした。

私が取り組んでいるものの開発版は次の URL にあります: http://thejonesmobile.com/gunnersen/

よろしくお願いします

4

2 に答える 2

11

なぜあなたは使わないのですinput.blur()か?コードを次のように変更しました。

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

そしてそれはうまくいきました。

于 2013-02-27T11:34:32.003 に答える