【发布时间】:2016-02-29 02:23:40
【问题描述】:
我正在 MVC 5 中开发一个测验应用程序。我在数据库中添加了两个表。一个用于标记,另一个用于问答。我已在数据库中输入问题、答案的数据,并将布尔值输入为 true 或 false 以获得正确答案,反之亦然。我可以从数据库中查看问题和答案。但是每当用户选中我想根据正确或错误答案给他分数的复选框时,我都会卡住。我无法编写 javascript 函数来检查复选框是否被选中。
Javascript:
function scorecheck(id) {
if (document.getElementById(id).checked) {
document.getElementById(id).value = "false";
}
else {
document.getElementById(id).value = "true";
}
}
剃刀视图:
@using(Html.BeginForm("Score", "Home", FormMethod.Post))
{
foreach (var item in Model) {
@Html.DisplayFor(modelItem => item.Question)
@Html.CheckBox("ans1", new { onchange = "scorecheck()" })
@Html.DisplayFor(modelItem => item.ans1)<br />
@Html.CheckBox("ans2", new { onchange = "scorecheck()" })
@Html.DisplayFor(modelItem => item.ans2)<br />
@Html.CheckBox("ans3", new { onchange = "scorecheck()" })
@Html.DisplayFor(modelItem => item.ans3)<br />
@Html.CheckBox("ans4", new { onchange = "scorecheck()" })
@Html.DisplayFor(modelItem => item.ans4)<br />
}
<input type="Submit" value="Submit" />
}
我还编写了逻辑来为正确和错误的答案打分,但它不起作用。
C#:
int s = 0;
string ans1 = c["ans1"];
if (ans1 == "true")
{
s = s + 20;
}
string ans2 = c["ans2"];
if (ans2 == "false")
{
s = s - 20;
}
string ans3 = c["ans3"];
if (ans3 == "false")
{
s = s - 20;
}
string ans4 = c["ans4"];
if (ans4 == "false")
{
s = s - 20;
}
【问题讨论】:
-
你可以使用 jquery 像 $("#checkkBoxId").attr("checked")
-
您想在点击任何复选框后立即计算积分,还是在发布后计算总和?
-
提交后要计算Score。
-
您是否尝试过以下操作:
if(document.getElementById('ans1, ans2, ans3, ans4').checked)?例如,考虑到“ans1”是属性的 id。 -
我用过: 用于从复选框中获取 id。然后我正在使用:
标签: javascript c# model-view-controller