Detecting value change of input[type=text] in jQuery

Jquery

Jquery Problem Overview


I want to execute a function every time the value of a specific input box changes. It almost works with $('input').keyup(function), but nothing happens when pasting text into the box, for example. $input.change(function) only triggers when the input is blurred, so how would I immediately know whenever a text box has changed value?

Jquery Solutions


Solution 1 - Jquery

Update - 2021

As of 2021 you can use input event for all the events catering input value changes.

$("#myTextBox").on("input", function() {
   alert($(this).val()); 
});

Original Answer

just remember that 'on' is recommended over the 'bind' function, so always try to use a event listener like this:

$("#myTextBox").on("change paste keyup", function() {
   alert($(this).val()); 
});

Solution 2 - Jquery

Description

You can do this using jQuery's .bind() method. Check out the jsFiddle.

Sample

Html

<input id="myTextBox" type="text"/>

jQuery

$("#myTextBox").bind("change paste keyup", function() {
   alert($(this).val()); 
});
More Information

Solution 3 - Jquery

Try this.. credits to https://stackoverflow.com/users/1169519/teemu

for answering my question here: https://stackoverflow.com/questions/24651811/jquery-keyup-doesnt-work-with-keycode-filtering?noredirect=1#comment38213480_24651811</del>

This solution helped me to progress on my project.

$("#your_textbox").on("input propertychange",function(){
   
   // Do your thing here.
});

Note: propertychange for lower versions of IE.

Solution 4 - Jquery

you can also use textbox events -

<input id="txt1" type="text" onchange="SetDefault($(this).val());" onkeyup="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();">

function SetDefault(Text){
  alert(Text);
}

Try This

Solution 5 - Jquery

Try this:

Basically, just account for each event:

Html:

<input id = "textbox" type = "text">

Jquery:

$("#textbox").keyup(function() { 
    alert($(this).val());  
}); 

$("#textbox").change(function() { 
alert($(this).val());  
}); 

Solution 6 - Jquery

$("#myTextBox").on("change paste keyup select", function() {
     alert($(this).val());
});

select for browser suggestion

Solution 7 - Jquery

DON'T FORGET THE cut or select EVENTS!

The accepted answer is almost perfect, but it forgets about the cut and select events.

cut is fired when the user cuts text (CTRL + X or via right click)

select is fired when the user selects a browser-suggested option

You should add them too, as such:

$("#myTextBox").on("change paste keyup cut select", function() {
   //Do your function 
});

Solution 8 - Jquery

Try this:

$("input").bind({
            paste : function(){
                $('#eventresult').text('paste behaviour detected!');
            }
})

Solution 9 - Jquery

Use this: https://github.com/gilamran/JQuery-Plugin-AnyChange

It handles all the ways to change the input, including content menu (Using the mouse)

Solution 10 - Jquery

This combination of events worked for me:

$("#myTextBox").on("input paste", function() {
   alert($(this).val()); 
});

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJerikoView Question on Stackoverflow
Solution 1 - JqueryAlejandro SilvaView Answer on Stackoverflow
Solution 2 - JquerydknaackView Answer on Stackoverflow
Solution 3 - JqueryandresView Answer on Stackoverflow
Solution 4 - JqueryIshan JainView Answer on Stackoverflow
Solution 5 - JqueryH BellamyView Answer on Stackoverflow
Solution 6 - Jquerymohamad yazdanpanahView Answer on Stackoverflow
Solution 7 - JqueryOscar ChambersView Answer on Stackoverflow
Solution 8 - JqueryHamed KhosraviView Answer on Stackoverflow
Solution 9 - JquerygilamranView Answer on Stackoverflow
Solution 10 - JqueryNoleView Answer on Stackoverflow