This is a very simple lightweight plugin to allow you to move the caret (or cursor) position in an <input /> or <textarea> element and/or modify text according to position and selection.
Use this method with no parameters to get the current position of the caret within the first element matched.
var position = $('input').caret();
This methods first parameter is the index of where you want to move the caret to. In order to move to an index, index must be an integer.
Alternatively you can pass a string as an index and it will be used via .indexOf() the element's value to get an index to move to.
The second parameter is to be used to move the caret to an offset of the index. When set to true, it will move the cursor after the string if a string was passed.
$('input').caret(10);
This method moves the caret to the end of the content within your element, also for your convenience.
$('input').caretToEnd();
This method inserts text at the current caret position.
$('textarea').insertAtCaret('text');
This method replaces the selected text and will be maintained if you add two % signs in your string. You could use this to surround a selected text with -tags (or MarkDown codes).
$('textarea').replaceAtCaret('<strong>%%</strong>');
- Luke Morton (original)
- Pat Benatar (insertAtCaret fn)
- Yoeran Luteijn (replaceAtCaret fn)
MIT