2

我正在使用 Jquery Mobile 开发适用于 Android 和 iPhone 的网络应用程序。当用户在输入文本字段中更改其值时,我想处理该事件。

最初,我使用.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 并将其“重定向”到 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 回答