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;
        }

MVC中的Javascript函数

以下是如何在点击时检查复选框的值:

 <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"; }