Напишите внутри текстовой области с Javascript - PullRequest
3 голосов
/ 03 декабря 2010

Я пытаюсь что-то написать в текстовой области, когда нажимаю на ссылку.

function writeText(txt){
    document.getElementById("writeArea").innerHTML = txt;
}

Я бы хотел передать html-тег вместо txt в качестве параметра этой функции, чтобы я мог получить изображение, ссылку и т. Д. Внутри текстовой области. Возможно ли это в Javascript? || JQuery будет хорошо? Предварительно спасибо.

Ответы [ 6 ]

4 голосов
/ 03 декабря 2010

Или, если тег jquery был там по причине:

$('#writeArea').val(txt);
3 голосов
/ 03 декабря 2010

Если вы хотите визуализировать некоторые изображения и метки привязки на экране, не используйте текстовую область. Используйте любой другой контейнер, например <div>, <span>, <p> и т. Д.

$("#yourelementid").html(yourtext);

поместит текст (в вашем случае HTML) внутри элемента с идентификатором yourelementid

HTML

<p id="para1"></p>

JQuery

var txt = "<a href='http://www.google.com'>Google</a>";
$("#para1").html(txt);

См. рабочий образец

3 голосов
/ 03 декабря 2010

Вы должны использовать value:

document.getElementById("writeArea").value = txt;
2 голосов
/ 03 декабря 2010

Вы можете легко сделать это в jQuery, если вы просто хотите установить текст текстовой области:

$("#yourid").val("hello");

Посмотрите, как это работает: http://jsfiddle.net/quQqH/

Если вы хотите, чтобы в нем был HTML, тогда он должен быть элементом контейнера (например, div).

// Html
<div id="yourid"></div>

//JavaScript
$("#yourid").html('<a href="#">My link</a>');

В противном случае, другой вариант - иметь Rich Text Editor (например, Yahoo Editor ), чтобы он отображал HTML-код, который находится на входе textarea - это сделает его редактируемым пользователем. Это немного сложнее, так как вам нужно будет включить правильные файлы, чтобы редактор работал. Затем просто сделайте что-то вроде следующего:

var myEditor = new YAHOO.widget.SimpleEditor('yourid', {
    height: '200px',
    width: '350px',
    toolbar: 0 // Hides the toolbar
});
myEditor.render();


$("#yourid").val("Click for <a href='http://yahoo.com'>Yahoo</a>");

Вы можете видеть, как это работает: http://jsfiddle.net/quQqH/1/. В этом случае я удалил панель инструментов, установив для нее значение 0, но ее можно настроить для отображения разных кнопок и т. Д. Просто удалите эту строку, чтобы отобразить панель инструментов по умолчанию. .

0 голосов
/ 28 сентября 2013

Если вы хотите написать длинный текст в текстовой области, вы можете использовать этот способ:

HTML

<textarea id="theId"></textarea>

jQuery

var a = 'Test textarea content. <a href="http://google.com">Google</a>" ';

$("#theId").val(a);

JS FIDDLE

0 голосов
/ 03 декабря 2010

просто дай вот так

$("#ID").val("<img src='images/logo.png' />");
...