Chcę dodać przecinek po skopiowaniu i wklejeniu ciągu do input

$("#keywords").bind('paste', function() {

   var a=$("#keywords").val();
   alert(a);
  });

Próbowałem powyższego kodu, aby sprawdzić, czy wklejona wartość jest przekazywana do zmiennej. W alercie wyświetla pustą wartość. Skąd mam wiedzieć, czy wartość wklejonego ciągu jest przekazywana do zmiennej, a następnie dołączać przecinek do zmiennej.

Oto skrzypce

1
Arish 30 sierpień 2012, 10:26

2 odpowiedzi

Najlepsza odpowiedź

Zdarzenie paste jest wyzwalane, zanim wklejony tekst będzie dostępny jako właściwość wartości w polu tekstowym. Musisz poczekać kilka milisekund, a następnie po prostu dodać przecinek do wartości, na przykład:

$("#keywords").on('paste', function() {
    var self = this, timer = setTimeout(function() {
        self.value=self.value+',';
    }, 300);
});​

SKRZYPCE

1
adeneo 30 sierpień 2012, 10:30

Zdarzenie paste tutaj uruchamia się / wyzwala zanim rzeczywista zawartość zostanie wklejona do kontrolki, jeśli wykonasz limit czasu i dowiesz się, jaka jest wartość przed i po wklejeniu, możesz dowiedzieć się i dodać ; do końca.

Znalazłem podobny wątek na tym samym tutaj Catch wklej dane wejściowe i możesz też znaleźć odpowiedź.

2
Community 23 maj 2017, 14:49