jQuery: deleting the last word from textarea’s cursor
Following with the completor suggestor I was playing, I had the need to delete the last word from cursor before the completor writes the suggestion selected.
Thanks to the previous function textarea.lastWord() it was very easy:
jQuery.fn.deleteLastWord = function() { this.each(function(){ if (this.selectionStart || this.selectionStart == '0') { var startPos = this.selectionStart; var endPos = this.selectionEnd; var scrollTop = this.scrollTop; var lastWord = $(this).lastWord(); startPos = startPos - lastWord.length; this.value = this.value.substring(0, startPos) + this.value.substring(endPos, this.value.length); this.focus(); this.selectionStart = startPos; this.selectionEnd = startPos; this.scrollTop = scrollTop; } else { alert("deleteLastWord not supported on this navigator"); } }); };
Example of use:
$('#my_textarea').deleteLastWord();
Don’t copy and paste from here, WP does weird stuff with code, download from here: http://gist.github.com/143822
This script is almost not tested, it works for me on FireFox 3.0.11 and Safari 4.0.1, so use it under your own responsability.