我使用ajax调用发布表单来创建对象。在我的视图中创建了对象之后,我就使用对象实例来呈现一个模板,footemplate说。
我想要做的是,将页脚模板插入到当前页面中,即包含表单的页中。特别是,我试图将其添加到id=‘结果-容器’的div中。但是,当我返回呈现的模板时,它实际上会自动加载页面。
视图
def object_create(request):
....
return render(request, template, template_context)阿贾克斯
$('#object-create').on('submit', function(event){
event.preventDefault();
var myform = document.getElementById('object-create');
var fd = new FormData(myform );
var post_url = $(this).attr('action');
$.ajax({
url : post_url,
data : fd,
cache: false,
processData: false,
contentType: false,
type : "POST",
success : function(data) {
$('#result-container').html(data)
},
error : function() {
alert("error")
}
});
});如何将html返回为只作为文本,而不是实际生成页本身?
编辑:
问题似乎是由我正在使用的弹出结构造成的。也就是说,我提交的表单位于弹出窗口中,我使用AJAX请求填充该弹出。
HTML
<div class='popup-overlay' style='display:none;'></div>
<div class='popup-outer' style='display:none;'>
<a id='popup-close'>X</a>
<p>
<div class='popup-inner'>
</div>
</p>
</div>填充和显示弹出窗口的AJAX/jquery函数
function openpopup(data, url) {
var data_ = data;
var url_ = url;
$.ajax({
url: url_,
type: 'GET',
data: data_,
success: function(data) {
$('.popup-inner').html(data);
}
});
$('.popup-overlay').fadeIn('fast');
$('.popup-outer').show();
};当我将表单加载到弹出窗口所属的原始页面中时,没有问题,一切都按预期进行。我猜有什么事情会发生(或不会发生)?
$('.popup-inner').html(data);不过,我不明白这里会出什么问题。有什么想法吗?
发布于 2018-01-20 17:53:05
也许您应该从模板中删除{%扩展‘%}?
https://stackoverflow.com/questions/48359066
复制相似问题