Let's say we have an input field: <input type="text" id="id0"/>
. I would like to dynamically replace the current selection of the text with my text. What is the best way to achieve that using jQuery or javascript?
Update:
I meant: the user types the text and selects part of it, then presses a button to replace the selected section with another specified text.
Regards, Rafal
Most browsers support selectionStart
and selectionEnd
properties on text inputs and textareas. However, IE < 9 does not. You could use my Rangy inputs plug-in for this, which normalizes the mess of IE < 9's lack of support and provides convenient methods for dealing with selections in text inputs and textareas. Using it, the code would be:
$("#id0").replaceSelectedText("SOME NEW TEXT");
If the text box does not have the focus, you'll need to focus it first:
$("#id0").focus();
$('#id0').val('somenewtexthere');
I'm not sure if this helps you but maybe in this way:
var myMessage="My Text";
$('#id0').val(myMessage);
If you want to clear it when you type and return its text when going away use this
$('#id0').focus(function() { $(this).val(''); });
$('#id0').blur(function() {$(this).val(' Your text '); });
jQuery("input#id0").attr("value","my text");