簡體   English   中英

Onclick按鈕不調用django中的js 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM