簡體   English   中英

OnSubmit function 不適用於輸入類型=“提交”

[英]OnSubmit function not working for an input type= 'submit'

我正在使用 django 制作一個測驗應用程序,這是我第一次使用 django 工作 其他一切工作正常,而不是每當我按下按鈕提交答案時,頁面就會重新加載。

這是我的 html 代碼:

<section>
    <div id = "results"></div>
        <form name = "quizForm" onsubmit = "return submitAnswers(answers = [{% for q in questions%}'{{ q.answer }}',{% endfor %}])">
                {% for q in questions %}
                    <h3> {{ q.id }}.  {{ q.question }}</h3>
                    ..........
                {% endfor %}
                <input type = "submit" value = "Submit Answer">
            </form>
            <br><br>
        </section>

這是與按鈕相關的js代碼:

function submitAnswers(answers) {

    var total = answers.length;
    var score = 0;
    var choice = []

    //dynamic method to get selected option
    for (var i = 1; i <= total; i++) {
        choice[i] = document.forms["quizForm"]["q" + i].value;
    }

    //dynamic method 1 for checking answer
    for (i = 1; i <= total; i++) {
        if (choice[i] == answers[i - 1]) {
            score++;
        }
    }

    //Display Result
    var results = document.getElementById('results');
    results.innerHTML = "<h3>You scored <span>" + score + "</span> out of <span>" + total + "</span></h3>"
    alert("You scored " + score + " out of " + total);

    return false;
}

根據這個腳本,每當我按下提交按鈕時,我必須看到一個警報,但頁面只是重新加載而不顯示任何警報消息。 我是使用 django 應用程序的新手,如果我缺少某些東西,請指導。 謝謝你!

{{ q.id }} 是什么。 {{ 問題 }}? 我相信這是一個語法錯誤

我認為您需要刪除表單上的操作,因為表單需要將其提交回服務器。 並將事件添加到輸入。 還缺少一個div。 我不知道預處理是做什么的,所以我只是復制它。 就像是

<section>
    <div id = "results"></div>
        <form name = "quizForm">
                {% for q in questions %}
                    <h3> {{ q.id }}.  {{ q.question }}</h3>
                    ..........
                {% endfor %}
                <input type = "button" value = "Submit Answer"
                 oninput = "return submitAnswers(answers = [{% for q in questions%}'{{ q.answer }}',{% endfor %}])">
        </form>
        <br><br>
   </div>
</section>
...

如果你正在設置

<input type='submit'>

它將提交表單並重新加載頁面,您應該將其設置為

<input type='button'>

並處理 ajax 呼叫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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