通过选中剃刀页面中的框来分配值

时间:2021-05-12 13:24:26

标签: asp.net-core checkbox web-applications razor-pages

我正在制作一个用于在线考试的网络应用程序,在我写下问题和答案后,我想通过选中一个复选框来选择正确的答案。 [正确答案][1] 将与选中的答案具有相同的值,但我不知道如何使其出现在 [问题列表][2] 或 [数据库][3] 中。

模型变量:

public string question{get;set;}
public string asnwer1{get;set;}
public string answer2{get;set;}
public string answer3{get;set;}
public string answer4{get;set;}
public string rightanswer{get;set;}

创建问题页面 cshtml:

<块引用>

Intrebare = 问题 | Optiune = 答案 | Raspuns = 正确答案。

<div class="form-group">
            <label asp-for="AplicatieIntrebare.Intrebare" class="control-label"></label>
            <input asp-for="AplicatieIntrebare.Intrebare" class="form-control" />
            <span asp-validation-for="AplicatieIntrebare.Intrebare" class="text-danger"></span>
        </div>
        <div class="form-group">
            <label asp-for="AplicatieIntrebare.Optiune1" class="control-label"></label>
            <input asp-for="AplicatieIntrebare.Optiune1" class="form-control" />
            <span asp-validation-for="AplicatieIntrebare.Optiune1" class="text-danger"></span>
            <input id="Checkbox1"  type="checkbox" />
        </div>
        <div class="form-group">
            <label asp-for="AplicatieIntrebare.Optiune2" class="control-label"></label>
            <input asp-for="AplicatieIntrebare.Optiune2" class="form-control" />
            <span asp-validation-for="AplicatieIntrebare.Optiune2" class="text-danger"></span>
            <input id="Checkbox2" type="checkbox" />
        </div>
        <div class="form-group">
            <label asp-for="AplicatieIntrebare.Optiune3" class="control-label"></label>
            <input asp-for="AplicatieIntrebare.Optiune3" class="form-control" />
            <span asp-validation-for="AplicatieIntrebare.Optiune3" class="text-danger"></span>
            <input id="Checkbox3" type="checkbox" />
        </div>
        <div class="form-group">
            <label asp-for="AplicatieIntrebare.Optiune4" class="control-label"></label>
            <input asp-for="AplicatieIntrebare.Optiune4" class="form-control" />
            <span asp-validation-for="AplicatieIntrebare.Optiune4" class="text-danger"></span>
            <input id="Checkbox4" type="checkbox" />
        </div>

谢谢! [1]:https://i.stack.imgur.com/MRUqr.png [2]:https://i.stack.imgur.com/sgnst.png [3]:https://i.stack.imgur.com/ztIIc.png

1 个答案:

答案 0 :(得分:0)

如果你想在复选框被选中时绑定Raspuns,你可以用asp-for="AplicatieIntrebare.Raspuns"添加一个隐藏的输入,在发布表单之前,用class="form-group"迭代div,然后检查div 被选中。如果是,则将隐藏的输入值设置为 div 中的输入值。这是一个演示:

cshtml:

<form method="post" id="myform">

    <div class="form-group">
        <label asp-for="AplicatieIntrebare.Intrebare" class="control-label"></label>
        <input asp-for="AplicatieIntrebare.Intrebare" class="form-control" />
        <span asp-validation-for="AplicatieIntrebare.Intrebare" class="text-danger"></span>
    </div>
    <div class="form-group">
        <label asp-for="AplicatieIntrebare.Optiune1" class="control-label"></label>
        <input asp-for="AplicatieIntrebare.Optiune1" class="form-control" />
        <span asp-validation-for="AplicatieIntrebare.Optiune1" class="text-danger"></span>
        <input id="Checkbox1" type="checkbox" />
    </div>
    <div class="form-group">
        <label asp-for="AplicatieIntrebare.Optiune2" class="control-label"></label>
        <input asp-for="AplicatieIntrebare.Optiune2" class="form-control" />
        <span asp-validation-for="AplicatieIntrebare.Optiune2" class="text-danger"></span>
        <input id="Checkbox2" type="checkbox" />
    </div>
    <div class="form-group">
        <label asp-for="AplicatieIntrebare.Optiune3" class="control-label"></label>
        <input asp-for="AplicatieIntrebare.Optiune3" class="form-control" />
        <span asp-validation-for="AplicatieIntrebare.Optiune3" class="text-danger"></span>
        <input id="Checkbox3" type="checkbox" />
    </div>
    <div class="form-group">
        <label asp-for="AplicatieIntrebare.Optiune4" class="control-label"></label>
        <input asp-for="AplicatieIntrebare.Optiune4" class="form-control" />
        <span asp-validation-for="AplicatieIntrebare.Optiune4" class="text-danger"></span>
        <input id="Checkbox4" type="checkbox" />
    </div>
    <input type="submit" value="submit" />
    <input asp-for="AplicatieIntrebare.Raspuns" hidden />
</form>
@section scripts {
    <script>
        $("#myform").submit(function () {
            $(".form-group").each(function (index, element) {
                if ($(element).children("input[type='checkbox']").prop("checked")) {
                    $("#AplicatieIntrebare_Raspuns").attr("value", $(element).children("input[type='text']").val());
                }
                
            })
        })
    </script> 
}

cshtml.cs:

[BindProperty]
        public AplicatieIntrebare AplicatieIntrebare { get; set; }
        public void OnGet()
        {
            AplicatieIntrebare = new AplicatieIntrebare { Intrebare = "What's my dog's name?", Optiune1 = "Jerry", Optiune2 = "Spot", Optiune3 = "Rex", Optiune4 = "Max" };
        }
        public void OnPost()
        {
            
        }

结果:

enter image description here

相关问题