views:

941

answers:

3

in html and javascript, I can use keyup, focus, blur to detect most of the content changes in a text input, however if the user do a copy and paste into the text input, how do I capture this change? The issue here is that the input is already in focus when user paste into it.

+1  A: 

the textbox has an OnChange event that fires when a) the text box loses focus AND the value within the text box has changed.

Stephen Wrighton
unfortunately, this doesn't work for paste, because the focus is not lost when user pastes something into the text box
you're not catching the PASTE, you're catching the fact that the value has been modified when the user leaves the textbox.
Stephen Wrighton
+2  A: 

You could capture the paste event (http://www.quirksmode.org/dom/events/cutcopypaste.html)

$("#myinput").bind("paste",function(){
    //code here
})
ToRrEs
That's nice! unfortunately paste is not supported in all browsers esp. FF3
A: 
$("#myinput").change(function(){
    // whatever you need to be done on change of the input field
});

// Trigger change if the user type or paste the text in the field
$("#myinput").keyup(function(){
    $(this).change();
});

// if you're using a virtual keyboard, you can do :
$(".key").live('click',function(){
    $("#myinput").val($("#myinput").val()+$(this).val());
    $("#myinput").change(); // Trigger change when the value changes
});
Alex