我可以像这样简单地设置textarea的值:
var foo='<div>Some html</div>\r\nSome html<br /><br />\r\n\r\n<div >Some html</div>\r\n</b>';
$('#my_textarea').val(foo);
并正确显示断裂线。
就我而言(与Laravel合作)我试图使用Jquery更新我的视图。我得到了上面的确切字符串作为Ajax响应。
此字符串保存在我的数据库中,我试图在所需的textarea中使用换行符显示它。在Ajax成功函数中,此方法$('#my_textarea').val(foo);
完全显示String,因为它没有换行符(\r\n
)。
我也尝试了这个:
$('#my_textarea').val(foo.replace(/\n/g, "<br />"));
但也无法正常工作。 我在这里缺少什么?
PS:如果我试试这个
console.log(foo);
$('#my_textarea').val(foo);// not working
$('#my_textarea').val(copied_foo);// working -- copied_foo:I copied the foo variable from the console
Ajax电话:
$.ajax({
type: "POST",
url: "/get_sa_data",
data: {selected:sa_number},
success: function(data) {
var description=data.description;
console.log(description);
$('#sa_description >textarea').val(description);//break lines not working
//$('#sa_description >textarea').val(copied_from_above_console.log);--> works
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log(XMLHttpRequest);
}
});
答案 0 :(得分:0)
您应该使用&npsb
代替\r
和<br />
代替\n
。你是绑定模板,所以只需要html标签。
答案 1 :(得分:0)
我为你做了这个jsFiddle,做了一个返回HTML的Ajax调用。
这是我为我的例子制作的javascript:
$.ajax({
url: "https://baconipsum.com/api/?type=all-meat¶s=3&start-with-lorem=1&format=html",
method: "GET",
dataType: "HTML",
success: function(data) {
console.log(data);
$("textarea").html( data.replace(/<p>/g, '').replace(/<\/p>/g, " ") );
}
})
但在你的情况下,你应该这样替换:
$("textarea").html( data.replace(/\r\n/g, " ") );
换行符"
是HTML EntitiesWikipédia,您还可以使用回车符
。