python - 将数据从 jquery 成功填充到模态时出现问题
问题描述
我有一个函数,它使用 AJAX 请求从视图中获取数据并以模型中的列表形式返回数据。
在我的模型中,数据是用换行符输入的,但是在我的 jQuery 输出中,该\n
字符被忽略了。任何人都可以帮忙吗?
模型对象中的数据:
ankit: Hi govind!
go358938: Hi Ankit, how are you ?
数据作为列表传递给 jquery:
{ 'list': 'ankit: Hi govind!\r\ngo358938: Hi Ankit, how are you ?' }
在 Modal 中可见的数据:
ankit: Hi govind! go358938: Hi Ankit, how are you ?
$('#chatbox').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget)
var recipient = button.data('whatever')
$.ajax({
url: "{% url 'fetcher' %}",
data: {
'search': recipient
},
dataType: 'json',
success: function (data) {
list = data.list;
$('#chatbox').find('.modal-body').html(list);
}
});
});
视图.py
def fetcher(request):
if request.is_ajax():
name = User.objects.get(username=request.GET.get('search', None))
b = ChatMessage.objects.get(user2 = name)
print(b.message)
data = {
'list': b.message,
}
return JsonResponse(data)
解决方案
首先,“jquery”输出是什么意思?
您在 HTML 中作为网站的输出?好吧,“\n”不被认为是“break”,而是<br/>
.
您的 html 文件在技术上如下所示:
<div>\n
<p>Whatever</p>\n
<p>Something different</p>\n
</div>
你不想把每一个都\n
算作<br/>
.
你有两个选择:
\n
在支持(例如<pre>, <code> and <textarea>
do)或用 ) 替换您\n
的html 元素中打印您的结果<br/>
。
解决方案1:
<textarea class="modal-body-content">
This is a new line\nhere
</textarea>
$('#chatbox').find('.modal-body-content').html(list);
解决方案2:
$('#chatbox').find('.modal-body').html(list.replace(/\n/g, '<br/>');
推荐阅读
- c# - 如何在 .NET 中的数据库 SQL Server 项目中使用 HttpClient(或其他)来调用外部服务?
- wpf - 如何添加验证以查看模型属性或如何实现 INotifyDataErrorInfo
- html - 如何随机化并显示图片的一小部分?
- javascript - SQL 在浏览器中的 apache 箭头之上?
- charts - Chart.js 忽略选项
- prometheus - 如何在普罗米修斯 predict_linear 中使用预测
- javascript - 对 React 中的未定义错误感到困惑
- c# - 如何在 C# 中编写授权级别函数?
- java - 未捕获 lambda 抛出的 Java 未经检查的异常
- smtp - 将 DKIM 与 SMTP TELNET 连接一起使用