How to trigger backspace on a textfield?

odle picture odle · Aug 3, 2011 · Viewed 33.2k times · Source

Say I have this:

<textarea id="myarea">Hello</textarea>

How would i trigger backspace on that textarea possibly using trigger() and key codes. The code for backspace is 8. And i am not looking for this:

$('#myarea').val( $("myarea").val().slice(0,-1) );

I need to simulate someone actually pressing the 'backspace' key on their keyboard. Thanks

Answer

rkw picture rkw · Aug 3, 2011

You can create a keydown event:

var e = jQuery.Event("keydown", { keyCode: 20 });

Then trigger it in your textarea:

$("#myarea").trigger( e );

Update:

After doing some more research and testing, I realize that this solution does NOT simulate a natural keypress event on the HTML element. This method only triggers the keydown event, it does not replicate the user going into the element and pressing that key.

To simulate the user going into that textbox and pressing that key, you would have to create a dispatch event

The dispatch event is also not globally supported. Your best bet would be to trigger the keydown event and then update the text area as intended.