2015-05-19 16 views
6

Ho una funzione keyup per più caselle di testo. Come faccio a attivare la funzione keyup quando qualcuno copia e inserisce qualcosa nella casella di testo?Attivare la funzione keyup quando qualcuno copia e incolla

.on("click blur keyup", ".emotion", function() { 
    //match something 
}); 
+1

GIU-ELETTORI: si prega di lasciare un commento sul motivo per cui la mia domanda è stata down-votata. questo aiuta Grazie. – Bekki

+0

C'è un evento paste disponibile in jQuery: http://stackoverflow.com/questions/11605415/jquery-bind-to-paste-event-how-to-get-the-content-of-the-paste –

risposta

11

Passare l'evento keyup per input, che attiverà ogni volta che qualcosa viene immesso nel campo, anche se il testo viene incollato (sia premendo CTRL + V o il tasto destro del mouse »Incolla.

.on('input', '.emotion', function() { 
    // Do your stuff. 
}); 
+0

bello. grazie :) – Bekki

+0

Ci sono restrizioni quando si utilizza 'input'? ad es .: compatibilità del browser? – Bekki

+2

@Bekki Facile da consultare https://developer.mozilla.org/en-US/docs/Web/Events/input – epascarello

1

Utilizzare l'evento paste. Per quanto ho provato funziona con Ctrl + V incollatura, e tasto destro del mouse> Incolla incollare.

+0

Grazie. Come combinare onPaste con la funzione keyup? – Bekki

+1

Aggiungilo alla tua funzione - '.on (" fai clic su sfuma keyup paste ", function() {...});' – Bfcm

+0

Puoi anche provare la funzione bind - '$ ('# this-id'). ('input', function() {}); ' – Bfcm

3

Questo farà ciò che si vuole:

$("#editor").on('paste', function(e) { 
 
    $(e.target).keyup(); 
 
}); 
 

 
$("#editor").on('keyup', function(e) { 
 
    alert('up'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="editor">

+1

grazie. 'function (e)' - posso usare qualcos'altro invece di '(e)'? come '(a)'? – Bekki

+0

Sì, puoi chiamare l'oggetto evento ciò che ti piace. –

+0

grazie ... +10 :) – Bekki

Problemi correlati