【问题标题】:Jquery Mobile Paste event on input text输入文本上的 Jquery Mobile Paste 事件
【发布时间】:2013-04-25 16:20:58
【问题描述】:

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

最初,我使用.on("keyup change"),一切似乎都正常。但是,当用户在文本字段上粘贴一些文本时(通过按住并点击“粘贴”),我的事件处理程序不会被调用。

如果你知道如何解决这个问题,请帮助我。

谢谢大家。

【问题讨论】:

    标签: jquery-mobile onpaste


    【解决方案1】:

    适用于所有浏览器,但不适用于 FireFox。

    Demo

    $('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

    【讨论】:

    • 我尝试了“粘贴”事件,但它不适用于 iPhone 和 Android。
    • 我在 iOS 7 上对其进行了测试,它可以工作,但在 android 上仍然没有运气。
    • @Omar - 我正在使用 Phonegap。
    • @BharatPatil 那么您肯定可以在 Phonegap/Cordova 中找到命令。
    【解决方案2】:
    1. 对于 Android,添加超时,如本例所示 http://ajax911.com/numbers-numeric-field-jquery/

    2. 对于 iPad 添加事件“更改”和粘贴,在 iphone 上工作

    【讨论】:

      【解决方案3】:

      这就是我在移动 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
              });
          });
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-13
        • 1970-01-01
        • 2020-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-05
        • 2016-10-10
        相关资源
        最近更新 更多