Простой вопрос, но я нигде не могу найти ответ.
Мне нужен ввод текста, который может отображать HTML в его значении, то есть:
<input type="text" name="guest_sc_player" id="guest_sc_player" size="27" value="<iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F34196707&show_artwork=true"></iframe>" />
Большинство других ответов будут работать для этой конкретной ситуации, но правильный способ сделать это - HTML Encode всего значения:
<input type="text" name="guest_sc_player" id="guest_sc_player" size="27" value="<iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F34196707&show_artwork=true"></iframe>" />
jsfiddle
Это избавляет от необходимости беспокоиться о том, могут ли быть одинарные или двойные кавычки в строке значения. В зависимости от используемой платформы, возможно, есть удобный способ сделать это автоматически. например HttpUtility.HtmlEncode в .NET
Замените эти двойные кавычки в свойстве value на ".
value
"
Во-первых, вам нужно закодировать все символы, которые необходимо кодировать.
Затем вы можете заключить строку в одинарные кавычки.
<input type="text" name="guest_sc_player" id="guest_sc_player" size="27" value='<iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F34196707&show_artwork=true"></iframe>' />
<input type="text" name="guest_sc_player" id="guest_sc_player" size="27" value='<iframe width="100%" height="166" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F34196707&show_artwork=true"></iframe>' />
одинарные кавычки тоже работают.