[英]Django form submit button's onclick does not call JavaScript function
[英]Onclick button does not call js function in django
我有一個必須調用我的 js function 的按鈕,但是當我這樣做時沒有任何反應(沒有獲取請求)
我的HTML:
<button type="button" id="checker" id="button{{answer.id}}" onclick="mark_as_correct({{answer.id}});">
</button>
我的 JS function:
function mark_as_correct(qid) {
var csrftoken = getCookie('csrftoken');
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
$.ajax({
url: 'url answerajaxcorrect',
type: 'post',
data: {id: qid},
success: function(data) {
document.getElementById('correct' + qid).innerHTML = "Correct!"
var button = document.getElementById('button' + qid)
button.parentNode.removeChild(button)
},
failure: function(data) {
alert('error')
}
})
}
我確實將我的 js 包含到模板中:
{% load static %}
<script type="text/javascript" src="{% static 'js/main.js' %}"></script>
我的觀點是這樣的:
@login_required
def correct_ajax(request):
qid = int(request.POST.get("id"))
answer = get_object_or_404(Answer, id=qid)
if answer.author == request.user:
answer.is_correct = True
answer.save()
return JsonResponse({
"is_correct": True,
})
else:
return JsonResponse({
"is_correct": False,
})
我是 js 和 django 的新手,所以我很難理解問題的根源,請幫忙。
onclick="mark_as_correct({{answer.id}});"
您傳遞給onclick
的 function引用需要能夠采用event
參數。 當您指向 function 並將參數分配給onclick
時,瀏覽器將在讀取時執行 function,並將該 function 的結果分配給onclick
。
在你的情況下,你可以創建一個匿名的 function 來完成這個技巧:
<button type="button" id="checker" id="button{{answer.id}}" onclick="function() { mark_as_correct({{answer.id}}) };">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.