How would you get the currently selected text within a textarea (and modify it)?
I’ve seen the select event that can be listened for, but I was wondering if there was a way to just get the currently selected text.
Also, what technique do you need to use in order to be able to modify that specific section of text within the textarea? I assume there’s some way of finding out what the position of the selection is within the contents of the textarea as a whole?
What I want to be able to do is take the selection and modify it, or wrap it in certain tags etc., like you are able to do in the stackexchange text editor.
I’ve posted what I consider the definitive function to do this in all browsers (including IE < 9) on Stack Overflow many times. Here’s one example:
IE's document.selection.createRange doesn't include leading or trailing blank lines
I’d also recommend my jQuery plug-in for this, which includes this function and others to insert, delete, surround or replace the selected text, which sounds like exactly what you want. It’s also the only jQuery plug-in for textarea selections I’m aware of that works correctly with line breaks in IE < 9.