MVC中的Javascript函数
本文关键字:函数 Javascript 中的 MVC | 更新日期: 2023-09-27 18:24:33
我正在MVC 5中开发一个Quiz应用程序。我在数据库中添加了两个表。一个用于打分,另一个用于问答。我已经在数据库中输入了问题、答案的数据,并输入了布尔值true或false作为正确答案,反之亦然。我可以从数据库中查看问题和答案。但每当用户选中我想根据正确或错误答案给他打分的复选框时,我就陷入了困境。我无法编写javascript函数来检查复选框是否被选中。
Javascript:
function scorecheck(id) {
if (document.getElementById(id).checked) {
document.getElementById(id).value = "false";
}
else {
document.getElementById(id).value = "true";
}
}
Razor视图:
@using(Html.BeginForm("Score", "Home", FormMethod.Post))
{
foreach (var item in Model) {
@Html.DisplayFor(modelItem => item.Question)
@Html.CheckBox("answers1", new { onchange = "scorecheck()" })
@Html.DisplayFor(modelItem => item.ans1)<br />
@Html.CheckBox("answers2", new { onchange = "scorecheck()" })
@Html.DisplayFor(modelItem => item.ans2)<br />
@Html.CheckBox("answers3", new { onchange = "scorecheck()" })
@Html.DisplayFor(modelItem => item.ans3)<br />
@Html.CheckBox("answers4", new { onchange = "scorecheck()" })
@Html.DisplayFor(modelItem => item.ans4)<br />
}
<input type="Submit" value="Submit" />
}
此外,我还写了为正确和错误答案打分的逻辑,但它不起作用。
C#:
int s = 0;
string ans1 = c["answers1"];
if (ans1 == "true")
{
s = s + 20;
}
string ans2 = c["answers2"];
if (ans2 == "false")
{
s = s - 20;
}
string ans3 = c["answers3"];
if (ans3 == "false")
{
s = s - 20;
}
string ans4 = c["answers4"];
if (ans4 == "false")
{
s = s - 20;
}
以下是如何在点击时检查复选框的值:
<input type="checkbox" value="yourvalue" onclick="MyFunc(this)">
和javascript函数:
function MyFunc(control)
{
if(control.checked==true)
//your logic
}
我使用以下内容从复选框中获取id:
`<input id="@(item.ans1)" type="checkbox" name="answers1" value="@item.ans1" onchange="scorecheck('@(item.ans1)')" /> `
然后我使用Javascript函数来检查它的值是真是假,如下所示:
if (document.getElementById(id).checked) {
document.getElementById(id).value = "True";
}
else {
document.getElementById(id).value = "False";
}