2012-03-14 7 views
14

誰かがアンドロイドブラウザ(4.0 - 多分少ない)でキーボードを強制的に開く方法を知っていますか? 私はthis solutionを試しましたが、それは私のために働いていません。force keyboard open on android

プロジェクトでは、テキスト入力を有効にしようとしていますが、サブミット(jQueryでインターセプト)した後にフォーカスが保持されますが、キーボードは消えます

スニペット:

$('#typer').blur(function() { 
    $(this).focus().click(); 
}); 

$('#typer').bind('keyup', function (e) { 
    var input = $.trim($(this).val()); 
    // some lines of code.. 
    $(this).val('').focus(); // clean up 
} 

iOSのも面白いです..しかし、まだテストされていません。

+0

達成しようとしていることはあまり明確ではありません。これは動作します:http://jsfiddle.net/Exceeder/Z6SFH/(私はあなたの問題に従うためにフィドルを作成しました)、キーボードは消えません。しかし、柔らかいキーボードは、あなたの#状態がどのような状態とスタイルであるのか不安です。ユーザが指で触れるのにかかわらず、キーボードを画面に留めておきたいですか? –

+1

問題は、送信後にキーボードが消えることです。あなたの例と同じです。それは "Go"を押した後に起こります。何か案が? – mrzmyr

+0

Ah。 "行く"ボタン...これを参照してください:http://stackoverflow.com/questions/6545086/html-why-does-android-browser-show-go-instead-of-next-in-keyboard –

答えて

6

Androidは、テキスト入力フィールドにフォーカスがあるときは常にソフトキーボードをプルアップします。 Android上の "Go"または "Done"ボタンはフォーム提出として機能するため、入力テキストのフォーカスが失われ、キーボードが消えます。ユーザーは、 "Go"、 "Done"または "Enter"が押された後にキーボードが消えることを期待しているので、Androidはこのルールに従います。技術的には別のウィンドウに移動したため、フィールドのぼかしを強制的に再フォーカスすることはほとんどありません。ユーザーがフォーカスゲイン直すtyperページの本文に一度の任意の場所をクリックしなければならないことにより、

$('body').click(function() { $('#typer').focus(); } 

は、部分的な解決策を提供することができます。これにより、OSがブラウザのアクティビティに戻り、入力フィールドにフォーカスが移ります。 http://jsfiddle.net/Exceeder/Z6SFH/(Androidデバイスでhttp://jsfiddle.net/Exceeder/Z6SFH/embedded/result/を使用してください)

キーボードのimeOptionsを制御するPhoneGapのようなラッパーを書く以外にも、私はこの問題を解決できる解決策がないと考えています。

+0

ありがとうアレックス、私はすでに文書をクリックして回避策を講じています。悲しいことに、そのための良いAPIはありません。 – mrzmyr

+0

Guysは、これについてChromiumバグトラッカーに新しい問題を投稿できるようにしました。それを実現させる唯一の方法です。私はここに私の投稿:https://code.google.com/p/chromium/issues/detail?id=435871&thanks=435871&ts=1416704707ちょうど私の問題が表示されないとふりをして複製を投稿し、もっと。 – trusktr