web-dev-qa-db-ja.com

JavaScriptで携帯電話に仮想キーボードを表示する

サイトのモバイルバージョンを作成しています。テキスト入力を伴うダイアログがポップアップするサイトの一部があります。通常、jQueryを使用してテキスト入力にフォーカスを合わせますが、それは機能しません。私がしようとしているものは次のとおりです。

$("#textinput").focus();
$("#textinput").click(); 
$("#textinput").trigger("tap"); //jQuery Mobile

どれも機能していないようです。何か案は? DroidXでテストしてきました。私はjQuery Mobileを使用していますが、他のライブラリが助けてくれるなら、私は他のライブラリを受け入れています。

35
Adam

少なくともiOS(iPhone)ではできません。そしてAndroidも信じています。ユーザー入力以外ではキーボードをトリガーできないようにする必要があるというユーザビリティの問題です。それが自動である場合、単に迷惑です)。

これを回避する方法はいくつかあります。

  • Prompt()はキーボードを開きます
  • .focus()イベント内から(たとえば、ダイアログを開いて).click()をトリガーすると、キーボードが表示されます
43
Mark Kahn

$( "#textinput")。focus();

入力要素にフォーカスを設定してキーボードを開くと、フォーカスが「ユーザーコンテキスト」内で設定されている場合にのみ機能します(クリック、マウスダウン、マウスアップなど)。

「スクリプトコンテキスト」(setTimeout、ajax呼び出しから返されたコールバック)から、キーボードは表示されません。

21
Tony Findeisen

次を使用できます。

$(textFiled).trigger("focus");

オーバーレイを開いたとき、またはドキュメントの準備ができたときにトリガーされる関数にこのコードを配置できます。

1
Petar Parabucki