Check if input value was changed on keyup immediately (with jQuery):
js:
$(function(){ $('form input').data('val', $('form input').val() ); // save value $('form input').change(function() { // works when input will be blured and the value was changed // console.log('input value changed'); $('.log').append(' change'); }); $('form input').keyup(function() { // works immediately when user press button inside of the input if( $('form input').val() != $('form input').data('val') ){ // check if value changed $('form input').data('val', $('form input').val() ); // save new value $(this).change(); // simulate "change" event } }); });
html:
<form> <input type="text" placeholder="type here to test events..."> <div class="log">log of change and keyup events. </div> </form>
Also check how to remove text in input on focus.
Thanks buddy...
it doesn't work. When I enter some text and then press arrow buttons it will write that text changed but it is false.
Yes, you're right, code triggers only for keyup actions.
You may re-write your code by remembering prev string in text input and comparing it with current.
If these strings are different, you may trigger your custom action.
I re-write the code and now old input value is checked if it is changed.