0

プロジェクトでjQueryモバイルを使用しており、テキストエリアのあるポップアップが必要です:

<div data-role="popup" id="popupDialog" data-overlay-theme="none" data-theme="a" style="width: 350px; max-width:350px;" class="ui-corner-all" data-dismissible="false">
    <button id="dialogCloseButton" data-theme="a" data-icon="delete" data-iconpos="notext" class="ui-btn-left">Close</button>
    <div data-role="content" class="ui-corner-bottom ui-content" style="text-align: center; margin: auto;">
        <textarea id="textArea" data-theme="b" style="resize: none; max-width: 100%; max-height: 150px; width: 100%; height: 150px; padding-bottom: 5px;"></textarea>
        <button data-theme="a">Ok</button>
    </div>
</div>

次のようにポップアップを開きます。

$('#popupDialog').popup('open');

テキストエリアにテキストを入力し、ボタンを使用してポップアップを閉じると、iOS 6.1 を実行している iPad で仮想キーボードが非表示になりません。

私はこのハックを試しましたが、うまくいきませんでした。

ポップアップを閉じる前にテキストエリアをぼかすと、テキストエリアは自動的に再びフォーカスを取得します (「ぼかし」ボタンを使用して、サンプル サイトでこれをテストできます)。

編集:例へのリンクを削除しました。

4

2 に答える 2

1

これは私のために働きます:

$('#textArea').blur();
$('#popupDialog').attr("tabindex",-1).focus();
于 2013-02-19T21:59:10.567 に答える
0

それはかなり自明です。2 行目はすべての入力フィールドのフォーカスを外し、jQuery に依存します。単一のフォーカスされたテキストフィールドで blur() を呼び出すと、常に機能するとは限らないことがわかりました。これらの行のいずれかが独立して機能するはずですが、両方を一緒に停止することはできません!

var hideKeyboard = function() {
    document.activeElement.blur();
    $("input").blur();
};
于 2014-11-12T03:03:19.030 に答える