jQuery: returning the last word from textarea’s cursor
I was enjoying trying to develop a kind of completor suggestor on a textarea, I wanted it to jump when the tab key was pressed, that what easy with capturing the keydown event and the help of event.preventDefault.
But the thing what wasn’t such easy was the capturing the last word on the textarea from the cursor.
But with the help of the code of the insertAtCaret function I was abble to obtain it:
jQuery.fn.lastWord = function() { var buffer = ''; this.each(function(){ if (this.selectionStart || this.selectionStart == '0') { var startPos = this.selectionStart; var endPos = this.selectionEnd; var scrollTop = this.scrollTop; var index = 0; var new_char = ''; do{ index += 1; buffer = new_char + buffer; new_char = this.value.substr(startPos - index, 1); } while( new_char.search( /^(\w|\.)$/|> ) != -1 ) } else { alert("lastWord not supported on this navigator"); } }); return buffer; };
Example of use:
alert( "last word from cursor: " + $('#my_textarea').lastWord() );
Don’t copy and paste from here, WP does weird stuff with code, download from here: http://gist.github.com/143808
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.
July 9th, 2009 at 7:33 pm
[…] nada por aquí y nada por allá ó el desarrollo de software como expresión artística. « jQuery: returning the last word from textarea’s cursor […]
January 11th, 2010 at 4:00 am
Hey, great blog…but I don’t understand how to add your site in my rss reader. Can you Help me, please :)
I’m Out! :)