Fernando Guillén

a Freelance Web Developer

cabecera decorativa

software development as an artistic expression

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.

Leave a comment

a Freelance Web Developer is proudly powered by WordPress
Entries (RSS) and Comments (RSS).