====== jQuery paste event not working ====== In this example I wanted to do somenthing every time the input value is changed by typing, pasting or set by code from another event. $('#foo [name="vid"]').on('change keyup paste', function(){ if($(this).val()){ //do something } }); Unfortunately that obvious and intuitive solution is not going to work. To solve the problem. $('#foo [name="vid"]').on('change keyup paste', function(){ let $self=$(this); setTimeout(function(){ if($self.val()){ //do something } }, 0); }); setTimeout could be set with a greater value than zero with the advantage of not doing something heavy at every keypress. So, 2 birds with a stone.