I found that jQuery change event on a textbox doesn't fire until I click outside the textbox.
HTML:
<input type="text" id="textbox" />
JS:
$("#textbox").change(function() {alert("Change detected!");});
See demo on JSFiddle
My application requires the event to be fired on every character change in the textbox. I even tried using keyup instead...
$("#textbox").keyup(function() {alert("Keyup detected!");});
...but it's a known fact that the keyup event isn't fired on right-click-and-paste.
Any workaround? Is having both listeners going to cause any problems?
Reading your comments took me to a dirty fix. This is not a right way, I know, but can be a work around.
On modern browsers, you can use the
input
event:DEMO
Binding to both events is the typical way to do it. You can also bind to the paste event.
You can bind to multiple events like this:
If you wanted to be pedantic about it, you should also bind to mouseup to cater for dragging text around, and add a
lastValue
variable to ensure that the text actually did change:And if you want to be
super duper
pedantic then you should use an interval timer to cater for auto fill, plugins, etc:HTML:
JS:
Try this:
See demo on JSFiddle.
Try the below Code: