【发布时间】:2020-02-03 18:01:33
【问题描述】:
我正在尝试构建一个测验,我希望用户能够提交每个问题的答案。
这是 HTML:
<form id="question1">
Question 1:
<input type="hidden" class="question" value="1">
<input type="radio" class="answers" value="1" name="answer">Answer 1<br>
<input type="radio" class="answers" value="2" name="answer">Answer 2<br>
<input type="radio" class="answers" value="3" name="answer">Answer 3<br>
<input type="radio" class="answers" value="4" name="answer">Answer 4<br>
<input type="submit" class="submitquestion">
</form>
<form id="question2">
Question 2:
<input type="hidden" class="question" value="2">
<input type="checkbox" class="answers" value="5" name="answers1[]">Answer 1<br>
<input type="checkbox" class="answers" value="6" name="answers1[]">Answer 2<br>
<input type="checkbox" class="answers" value="7" name="answers1[]">Answer 3<br>
<input type="checkbox" class="answers" value="8" name="answers1[]">Answer 4<br>
<input type="submit" class="submitquestion">
</form>
<form id="question3">
Question 2:
<input type="hidden" class="question" value="2">
<input type="checkbox" class="answers" value="9" name="answers2[]">Answer 1<br>
<input type="checkbox" class="answers" value="10" name="answers2[]">Answer 2<br>
<input type="checkbox" class="answers" value="11" name="answers2[]">Answer 3<br>
<input type="checkbox" class="answers" value="12" name="answers2[]">Answer 4<br>
<input type="submit" class="submitquestion">
</form>
问题的数量和答案的类型(复选框/单选)将会改变。 我希望能够使用提交每个问题而无需刷新页面,并且我希望能够一次提交每个部分的答案。
$(document).ready(function(){
$(".submitquestion").click(function(){
$(":checked").each(function() {
alert($(this).val());
});
});
});
上面的代码重新加载页面。 另一个问题是,如果我为问题 1 选择了一个答案(但我没有提交),然后我转到问题 2 并在问题 2 中点击“提交”,我将提交问题 1 和问题 2 的答案。有没有办法做到这一点而不必指定 ID(因为没有固定数量的问题)。
感谢任何帮助。
【问题讨论】:
-
A.)
event.preventDefault();将阻止表单重新加载页面和 2.) 使用每个表单的 id 执行提交并在提交时从该表单收集数据。 -
stackoverflow.com/questions/1621714/jquery-find-parent-form .. 或者换句话说,
$(this).closest("form").submit();