Допустим, у нас есть поле ввода: <input type="text" id="id0"/>.Я хотел бы динамически заменить текущий выделенный текст моим текстом.Каков наилучший способ добиться этого с помощью jQuery или javascript?
<input type="text" id="id0"/>
Обновление:
Я имел в виду: пользователь набирает текст и выделяет его часть, затем нажимает кнопку, чтобы заменить выбранный разделс другим указанным текстом.
С уважением, Рафал
Большинство браузеров поддерживают свойства selectionStart и selectionEnd для ввода текста и текстовых полей.Тем не менее, IE <9 не делает.Для этого вы можете использовать мой плагин <a href="http://code.google.com/p/rangyinputs" rel="nofollow"> Rangy для ввода , который нормализует беспорядок поддержки IE <9 и предоставляет удобные методы для работы с выборками в текстовых вводах и текстовых областях.Используя его, код будет выглядеть так: </p>
selectionStart
selectionEnd
$("#id0").replaceSelectedText("SOME NEW TEXT");
Если текстовое поле не имеет фокуса, вам нужно сначала сфокусировать его:
$("#id0").focus();
Если вы хотите очистить его, когда вы печатаете, и возвращаете его текст, уходя, используйте это
$('#id0').focus(function() { $(this).val(''); });
$('#id0').blur(function() {$(this).val(' Your text '); });
Я не уверен, поможет ли это вам, но, возможно, так:
var myMessage="My Text"; $('#id0').val(myMessage);
jQuery ("input # id0"). Attr ("value", "my text");
$('#id0').val('somenewtexthere');