我正在创建一个用于考试的小型应用程序,当我单击下一步按钮时,当前答案单选按钮值应存储在某个变量中,并且该值应添加到下一个答案值中,我使用jQuery,但是当我多次调用该函数时,我的存储值始终会重置为零,
这是我到目前为止尝试过的。 以下是我的查看页面
<div>
<div id="questionvalue">@a.QDescription</div>
<div>
<div id="questionvalue">
<input type="radio" name="test" value="@a.Choice1Percent"> @a.Choice1Desc<br>
</div>
</div>
<div>
<input type="radio" name="test" value="@a.Choice2Percent"> @a.Choice2Desc<br>
</div>
<div>
<input type="radio" name="test" value="@a.Choice3Percent"> @a.Choice3Desc<br>
</div>
<div>
<input type="radio" name="test" value="@a.Choice4Percent"> @a.Choice4Desc<br>
</div>
<button type="button" id="starttestbuttonid" class="btn btn-default" onclick="StartTest()">Next</button>
以下是我尝试添加答案总和的脚本
<script>
function StartTest() {
debugger;
var selopt = parseFloat($('input[name=test]:checked').val());
var optionssum=0;
optionssum+= optionssum + selopt;
$.ajax({
url: $("baseUrl").html() + "Test/_QuestionView",
type: "POST",
data: { selectedoption: selopt},
success: function (data) {
debugger;
$('#appendquestion').html(data);
// $('#myModal').modal(show);
},
error: function (data) {
$('#loading').hide();
}
});
}
任何人都可以帮助您计算总和。
答案 0 :(得分:1)
你不能optionssum += optionssum + selopt;
,我想你是说optionssum += selopt;
当然,每次都会重置optionsum,您可以在var optionssum=0;
内的StartTest()
处以及每次单击被单击按钮时将其重置。
只需将您的代码更改为此,它就可以工作(将其设为全局变量)
var optionssum=0;
function StartTest() {
debugger;
var selopt = parseFloat($('input[name=test]:checked').val());
optionssum+= selopt;
$.ajax({
url: $("baseUrl").html() + "Test/_QuestionView",
type: "POST",
data: { selectedoption: selopt},
success: function (data) {
debugger;
$('#appendquestion').html(data);
// $('#myModal').modal(show);
},
error: function (data) {
$('#loading').hide();
}
});
}
答案 1 :(得分:0)
问题是因为您保留了var optionssum=0;
我可以建议您做以下事情
HTML
<div id="questionvalue">@a.QDescription</div>
<div>
<div id="questionvalue">
<input type="radio" name="test" value="1"> 1<br>
</div>
</div>
<div>
<input type="radio" name="test" value="2"> 2<br>
</div>
<div>
<input type="radio" name="test" value="3"> 3<br>
</div>
<div>
<input type="radio" name="test" value="4"> 4<br>
</div>
<button type="button" id="starttestbuttonid" class="btn btn-default" data-optionssum="0" >Next</button>
<br>
<b>Total : <span class="tot" >
</span>
</b>
JAVASCRIPT
$(document).ready(function(){
$("#starttestbuttonid").on("click",function(){
var optionssum = $(this).data("optionssum");
var selopt = parseFloat($('input[name=test]:checked').val());
alert("+ "+selopt);
if(!isNaN(selopt))
optionssum+= selopt;
/*
Your ajax
*/
//set latest total value
$(this).data("optionssum",optionssum);
// just want to show the value
$(".tot").html(optionssum);
});
});
JSFiddle示例:https://jsfiddle.net/synz/Ltv3k0bq/