gpt4 book ai didi

python - Django - ajax 响应后模板重新加载

转载 作者:行者123 更新时间:2023-12-01 00:02:58 25 4
gpt4 key购买 nike

我对 Django 不太熟悉,并且遇到了一个问题。我正在向 django View 发送一个 post 请求,并使用 HttpResponse 返回该函数,以便将我的模板的 div 内容更改为从我的 View 传递的值。问题是:一旦ajax响应并改变了它的div的值;页面立即重新加载。你们知道为什么吗?

Views.py

def index(request):
if request.is_ajax():
print("request is ajax")
details = request.POST.get('id')
return HttpResponse(details)
else:
return HttpResponse("Failed)

base.html

<button id="checkres">Check result</button>
<form name="testform" id="testform" method="post">
{% csrf_token %}
<input type="text" id="rowfield">
<input type="submit">
</form>

$("#testform").submit(function (event){
$row_num = $('#rowfield').val()
$("#responseresult").text('checking');
$.ajax({
type: "POST",
url: "/bot",
data: {csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(), id: $row_num},
success: function(data){
$("#responseresult").text(data);
alert(data);
}
});
});

最佳答案

你的javascript submit 事件没有调用event.preventDefault(),这就是ajax响应后刷新的原因。将您的 JavaScript 函数更改为:

 $("#testform").submit(function (event){
$row_num = $('#rowfield').val()
$("#responseresult").text('checking');
$.ajax({
type: "POST",
url: "/bot",
data: {csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(), id: $row_num},
success: function(data){
$("#responseresult").text(data);
alert(data);
}
});
<b>event.preventDefault();</b> // prevents the page from refreshing.
});

进一步阅读 preventDefault()

关于python - Django - ajax 响应后模板重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60200655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com