Я хочу изменить значение char в индексе каретки на «[br]».
Пример того, что я имею в виду: позволяет сказать, что у нас есть текстовое поле, и пользователь вводит какой-то текст, через некоторое время он вспомнил, что забыл начать новую линию, поэтому он перемещает свою каретку туда, где ему нужен новый line и нажмите return \ enter. Я хочу добавить к этому пункту строку «[br]», используя только javascript. вот что я получил в настоящее время:Как установить значение, где значение каретки соответствует значению [Javascript]
<textarea id="textarea" onkeydown="javascript:DoLine();"></textarea>
А вот DoLine()
функция:
function DoLine() {
if (event.keyCode == 13) {
var text = document.getElementById('textarea').value;
text += "[br]";
if (text.indexOf("[br]") != text.length) {
var getTextAfter = text[text.lastIndexOf("[br]")] += "\r";
}
document.getElementById('textarea').value = text;
}
}
этот код добавляет «[ш]» в конце TEXTAREA instade того, где каретка находится. Я действительно не знаю, как получить индекс каретки, поэтому я мог бы просто преобразовать text
var в массив символов, а затем добавить «[br]» по индексу каретки. Итак, у кого-нибудь есть представление о том, как я могу заставить свой код работать так, как я этого хотел? или любая идея, как получить местоположение каретки?
PS: по кареткой я имею в виду это:
Спасибо :)
Посмотрите здесь: HTTP: //stackoverflow.com/questions/3308292/inserting-text-at-cursor-in-a-textarea-with-javascript/3308539#3308539 – Tyr
Необходимо использовать encodeURIComponent для получения значения текстового поля с форматированием, чтобы вы могли добавьте новые строки. – frenchie
@Tyr Спасибо! это сработало –