web-dev-qa-db-ja.com

iPhone Mobile Safari:キーボードを強制的に開く

これはHTML/CSS/JS(jQuery)iPadアプリです。入力フォームをスライドダウンするボタンがあります。ユーザーを入力に集中させ、キーボードを起動します。

これは私が取り組んでいるものですが、機能しません:

$('#myFormField').focus();

これは確かに入力にフォーカスしますが、キーボードの起動に失敗します。 (セキュリティ上の理由などのために)それは不可能ですか?

ユーザーが入力(またはそのことについて何か)をタップするのを強制またはシミュレートする方法はありますか?

37
KrazyKen04

多分これらのリンクはあなたを助けることができます:

4
Sylter

これを試して

Safari iPhone 7およびiPhone 6 Plusでテスト済み、Android 4.4

ボタンをタッチすると、iOS仮想キーボードが正常に開きました。

状態

1)Keypressイベントをトリガーするボタンを作成する=> $('.btn_abc')

2)テキスト入力タグを作成し、IDをこの要素に設定します=> $('#search_input')

$( document ).ready(function() {

  var focusTextField = function(){
    console.log("focusElement");
  };

  var onKeypressHandler = function(){
    console.log("* * * keypress event handler")
    $('#search_input').blur().focus();
  };

  var onClickHandler = function() {
    $('.btn_abc').trigger('keypress');
  };

  $('#search_input').bind('focus', focusTextField);
  $('.btn_abc').bind('click', onClickHandler);
  $('.btn_abc').bind('keypress', onKeypressHandler);

});
3
jamy

そのボタンを入力フィールドにすると、すぐにフォーカスがメイン入力フィールドに切り替わります。キーボードが開いたままになります。以下は、ユーザーがクリックしたボタンの上に透明な入力フィールドを配置して、要求したようなボタンを使用した例です。 iPhone 4(iOS 6/7)とHTC Windows Phoneでテスト済み。

ユーザーが重視する入力:

<input id="main" />

ユーザーが押すボタン(CSSを使用して入力フィールドをオーバーレイ):

<a>Button</a><input onfocus="FocusMain()" />

フォーカスを瞬時に交換:

function FocusMain()
{
    $("#main").focus();
}
2
user2638216