OnSubmit 函数不适用于输入类型 = '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应用程序的新手,如果我缺少什么,请指导。谢谢!

我认为您需要删除表单上的操作,因为表单需要将其提交回服务器。并将事件添加到输入中。还缺少一个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>
...

什么是{{q.id}}。{问题}?这是一个语法错误,我相信

如果您正在设置

<input type='submit'>

它将提交表单并重新加载页面,您应该将其设置为

<input type='button'>

并处理ajax调用。

相关内容

最新更新