Захват текста, вставленного в текстовое поле с помощью JQuery - PullRequest
12 голосов
/ 11 февраля 2010

Я должен принять событие вставки текстовой области, используя JQuery Я пробовал следующий код, но он не работает ...

$(document).ready(function()
{ 
  $('#txtcomplaint').keyup(function()
  {  
     TextCounter('txtcomplaint','counterComplaint', 1000 ); 
  }) 
  $('#txtcomplaint').onpaste(function()
  {  
     alert()
     //TextCounter('txtcomplaint','counterComplaint', 1000 ); 
  }) 
});

Ответы [ 4 ]

25 голосов
/ 11 февраля 2010

Вы можете сделать что-то вроде этого

$("#txtcomplaint").bind('paste', function(e) {
    var elem = $(this);

    setTimeout(function() {
        // gets the copied text after a specified time (100 milliseconds)
        var text = elem.val(); 
    }, 100);
});
6 голосов
/ 11 февраля 2010
$('#txtcomplaint').bind('paste', function(e){ alert('pasting!') });

Дополнительный ресурс смотрите здесь .

1 голос
/ 09 февраля 2017

Это самое полезное решение:

$("#item_name").bind("input change", function() {});

возможно, изменение не является обязательным.

1 голос
/ 09 апреля 2015

Я, наконец, получил это для 1) набора текста, 2) перетаскивания, 3) Ctrl-V и 4) вставки из контекстного меню щелчком мыши, но мне пришлось прикрепить обработчики вставки и удаления документ (где «taValue» - это класс текстовых областей, которые я пытаюсь отслеживать):

        $(document).on("paste drop", '.taValue', function (e) {
          myHandler.call(e.target, e);
        });

Событие keyup на textarea уже сработало. Следующая проблема состояла в том, что события вставки и удаления запускаются ПЕРЕД тем, как текст в текстовой области действительно изменяется. В моем случае я хотел сравнить новый текст с оригинальным текстом. Я прибег к setTimeout:

    function myHandler(e) {
      if (e && (e.type === "drop" || e.type === "paste")) {
        var me = this;
        setTimeout(function () { myHandler.call(me) }, 200);
      }... [more code to do the comparison]

Я ненавижу использовать таймауты для подобных вещей, но это работает (когда я пробовал интервал в 100 мс, это не так).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...