stop jquery append removing line breaks

时间:2015-05-07 06:46:10

标签: jquery html internet-explorer-10

I have a div that looks like this

<div id='wrap'></div>

I want to .append()

<input value="a&#10;b">

but the value gets altered to

"ab" 

after the append. It seems to be doing this in IE only. What am I doing wrong?

4 个答案:

答案 0 :(得分:2)

您需要使用:

$("#wrap").append("<input/>").find('input').val($('<div>').html('a&amp;#10;b').text());

<强> Working Demo

答案 1 :(得分:1)

您可以选择尝试:

$("#wrap").append("<input/>").find("input").val("a&#10;b");

FIDDLE

答案 2 :(得分:1)

如果您希望换行实际上是换行符,请改用textarea

$('#wrap').append($('<textarea>a&#10;b</textarea>'));

但是,如果您希望输入显示a&#10b,则需要使用&#38;&amp;

来转义&符号
$('#wrap').append($('<input value="a&amp;#10;b">'));

JSFiddle

答案 3 :(得分:0)

不仅仅是在IE中。 &#10; - ASCII中的换行符。如果您需要多行字段,请尝试使用<textarea>。否则,您可以使用零宽度空间:

<input value="a&&#8203#10;b">

DEMO