2017-01-27 7 views
0

ボタンを押すと、JSを介してキーボードを無効にしようとしていますが、私は運がありません。モバイルSafari - Javascriptでキーボードを閉じる

セットアップ:

  1. 私はそれに縛ら受け入れ、キャンセルボタンでtextareaを持っています。
  2. キャンセルボタンをクリックすると、私のビューオブジェクトはtextAreaElement.blur()を呼び出します。
  3. これで、承認ボタンとキャンセルボタンが削除されます。

期待:

  • フィールドがフォーカスを失った(視覚的に、そうでなければ)。
  • キーボードを閉じます。

実際:

  • フィールドがフォーカスを失うように見える(視覚的に、カーソルが表示されていない)、およびプログラムで。
  • キーボードは引き続き表示されます。

私はすでに通常のGoogleを試してきましたが、それらはすべて、フォーカスされた要素でblurを呼び出すだけで十分であると考えるようです。 1人のユーザーが、$('input').blur()と呼んで、すべてのフィールドがぼやけていても差がないようにすることさえ提案しました。

答えて

0

...私はこれがなぜ起こったのかを考え出しました。

私はこのフィールドの[Accept]ボタンと[Cancel]ボタンを削除していると述べました。具体的には、次のようになりました。

  1. textAreaElement.blur()に電話してください。
  2. ボタンのアニメーションが消えます。
  3. アニメーションの完了時に、buttons.remove()

キャンセルボタンがクリックを受信すると、フォーカスが得られました(キーボードはアクティブのままです)。その後アニメーション完了コールバックで[キャンセル]ボタンが削除されると、フォーカスは以前のフォーカス可能な要素のtextareaに適用されました。

だから私はやっての効果があった:

textarea.blur()#はすでにフォーカスを持っていません。 buttons.remove()#ボタンを削除し、フォーカスをテキストエリアに適用します。

  1. 消えるボタンをアニメーション化:

    ソリューションは、代わりにすることでした。

  2. アニメーションの完了を待つ、buttons.remove()
  3. textAreaElement.blur()を呼び出します。
関連する問題