2

Jquery Mobile を使用して、Android および iPhone 用の Web アプリを開発しています。ユーザーが入力テキスト フィールドの値を変更したときにイベントを処理したいと考えています。

最初に、私は使用.on("keyup change")していますが、すべてが正常に機能しているようです。ただし、ユーザーがテキスト フィールドにテキストを貼り付けると ([貼り付け] を長押ししてタップすると)、イベント ハンドラーが呼び出されません。

この問題を解決する方法を知っている場合は、私を助けてください。

皆さん、ありがとうございました。

4

3 に答える 3

3

すべてのブラウザで動作しますが、FireFox では動作しません。

デモ

$('input').on('paste', function (e) {
 if (e.originalEvent.clipboardData) {
  var text = e.originalEvent.clipboardData.getData("text/plain");
  $('p').empty();
  $('p').append(text);
 }
});

クレジットは次のとおりです: jQuery Detect Paste Event Anywhere on Page and "Redirect" it to Textarea

于 2013-04-25T18:20:09.263 に答える
0
  1. Android の場合、この例のようにタイムアウトを追加しますhttp://ajax911.com/numbers-numeric-field-jquery/

  2. iPadの場合、イベント「変更」をペーストとともに追加し、iPhoneで作業しました

于 2015-08-21T19:48:11.363 に答える
0

これが、モバイルのSafariとChromeで私にとってうまくいったことです。

if (document.getElementById('search_input')) {
    document.querySelector('#search_input').addEventListener('paste', (e) => {

        let pasteData = (e.clipboardData || window.clipboardData).getData('text');
        pasteData = pasteData.replace(/[^\x20-\xFF]/gi, '');
        window.setTimeout(() => {
            //do stuff
        });
    });
}
于 2019-02-16T20:54:57.440 に答える