HTML в значении поля ввода

Как я могу заставить HTML работать в значении поля ввода? Если вы включите HTML в значение, он будет отображаться как чистый текст. Есть ли способ сделать что-то подобное?

<input type='text' value='<b>tekst</b>'></input>

Таким образом, выход:

tekst

вместо

<b>tekst</b>

Я думаю, что это был плохой пример... Я хочу, чтобы все соответствующие HTML-теги работали. Если я хочу включить изображение, изображение появится на входе, если я хочу добавить тег... текст должен отображаться как ссылка.

Ответы

Ответ 1

Я не уверен в вашем вопросе, хотите ли вы, чтобы значение содержало HTML, или хотите ли вы применить HTML к чему-то внутри ввода.

Если вы хотите установить значение для некоторого HTML, например <input value="<b>Some HTML</b>">, где значение действительно покажет HTML, вам нужно закодировать скобки HTML, например <input value="&lt;b&gt;Some text&lt;b/&gt;">. Существуют функции, доступные для этого автоматически для большинства языков сценариев (например, htmlentities() в PHP).

Если вы хотите применить HTML к входному значению, короткий ответ... вы не можете. Если вы хотите форматировать там, вы можете использовать атрибут contentEditable в HTML5, который позволяет вам просто редактировать на месте (думаю, заголовки Flickr).

Если вы хотите просто создать стандартное поле ввода, вы можете просто использовать CSS, как и другие предложенные ответы.

Ответ 2

Вы можете попытаться декодировать вас сущности из вашего postvalue. В PHP вы можете сделать это с помощью html_entity_decode();

Ответ 3

Вам нужно закодировать весь необходимый HTML-код и вставить его во входное значение.

Если вы кодируете это:

"http://sansoftmax.blogspot.com/"

Он будет выглядеть следующим образом:

&quot;http://sansoftmax.blogspot.com/&quot;

На входе:

value="&quot;http://sansoftmax.blogspot.com/&quot;"

Интернет-кодировщик/декодер

Ответ 4

Попробуйте CSS:

input[type=text] {
    font-weight: bold;
}

Ответ 5

Я не думаю, что вы можете поместить HTML внутри текстового поля и интерпретировать его как HTML, а не как текст в поле.

Чтобы выполнить то, что вы хотите, вам придется использовать CSS. Пример строки, выделенной жирным шрифтом, как вы указали в своем примере:

<input type="text" style="font-weight: bold;" value="tekst" />