Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 复选框更改时设置模型上的值_Javascript_Asp.net_Checkbox - Fatal编程技术网

Javascript 复选框更改时设置模型上的值

Javascript 复选框更改时设置模型上的值,javascript,asp.net,checkbox,Javascript,Asp.net,Checkbox,我有一个页面,其中包含每个用户的用户名和复选框。 它看起来像一个矩阵 现在,当更改其中一个复选框时,我想更改用户的值,以便知道更改了哪个用户。这样,我可以检查数据库中需要更新的用户 我的页面代码如下所示: @for(var i = 0; i < Model.EmployeeList.Count; i++) { <input type="hidden" asp-for="EmployeeList[i].Id"/> <tr> <th sco

我有一个页面,其中包含每个用户的用户名和复选框。 它看起来像一个矩阵

现在,当更改其中一个复选框时,我想更改用户的值,以便知道更改了哪个用户。这样,我可以检查数据库中需要更新的用户

我的页面代码如下所示:

@for(var i = 0; i < Model.EmployeeList.Count; i++)
{
    <input type="hidden" asp-for="EmployeeList[i].Id"/>
    <tr>
    <th scope="row">@Model.EmployeeList[i].Name @Model.EmployeeList[i].Surname</th>
<th scope="row">@Model.EmployeeList[i].Location</th>
@for (var j = 0; j < Model.EmployeeList[i].SelectedSkillList.Count; j++)
{
<td>

    @*<div class="custom-control custom-checkbox">
        <input type="checkbox" class="custom-control-input" id="customCheck1">
        <label class="custom-control-label" for="customCheck1">Check</label>
    </div>*@
        <label class="label">
            <input asp-for="EmployeeList[i].SelectedSkillList[j].IsSelected" type="checkbox" class="label__checkbox"/>
            <span class="label__text">
                <span class="label__check">
                    <i class="fa fa-check icon"></i>
                </span>
            </span>
        </label>

    @*<input asp-for="EmployeeList[i].SelectedSkillList[j].IsSelected" type="checkbox" />*@
    @*If this is not included, prefix becomes null*@
    @Html.HiddenFor(x => Model.EmployeeList[i].SelectedSkillList[j].Prefix)
    @Html.HiddenFor(x => Model.EmployeeList[i].IsChanged)
</td>
}
</tr>
}
@for(变量i=0;iModel.EmployeeList[i]。SelectedSkillList[j]。前缀)
@Html.HiddenFor(x=>Model.EmployeeList[i].IsChanged)
}
}

当我单击复选框时,我想设置Model.EmployeeList[I]的值。IsChanged为true。

要解决此问题,您应该知道Id对于任何元素都应该是唯一的。因此,您将获得不同的隐藏ID。我不记得重复元素的MVC Id是如何组成的,但这不是问题:您应该使用HTML helper@HTML.Id(Model.EmployeeList[I].IsChanged)获取Id,因此,您可以通过以下方式将隐藏Id绑定到复选框属性:


元素的Id应该是唯一的。因此,您将获得不同的隐藏ID。我不记得重复元素的MVC Id是如何组成的,但这不是问题:您应该使用HTML助手@HTML.Id(Model.EmployeeList[I].IsChanged)获取Id,因此,您可以通过以下方式将隐藏Id绑定到复选框属性:@Sycraw:我真的不明白您的意思。你能澄清一下吗?MVC将为“isChanged”隐藏项生成一个ID,因为会有更多的隐藏项,它应该为每一行提供一个非固定ID(即:isChanged_1,isChanged_2…),要获取特定隐藏项的ID,可以使用@Html.ID(Model.EmployeeList[i].isChanged):它应该打印该行中隐藏项的ID。然后,您可以将其放入一个定制的checkbox属性中,以达到如下效果:然后您可以使用javascript订阅onchanged checkbox事件,获取他的数据changedhidden属性(continue…)。。。由于行中呈现的是隐藏对象的id,因此可以使用它来访问特定的隐藏对象并更新其值。为了semplicty的缘故,使用jQuery的示例:$(function(){$(“.label_uucheckbox”).on(“change”,function(){var t=$(this);var hdnIsChangedId=t.data(“changedHidden”);var hidden=$(“#”+hdnIsChangedId);hidden.val(“changed!!”;);});获取示例代码并对其进行格式化,以使其可读性和可用性understandable@Sycraw我一直在“var hdnIsChangedId=t.data(“changedHidden”);上得到一个“undefined”
<input type="checkbox" data-changedHidden="IsChanged-3" class="label__checkbox"... />
$( function(){ 
    $(".label__checkbox").on("change",
        function(){ 
            var t=$(this); 
            var hdnIsChangedId=t.data("changedHidden"); 
            var hidden=$("#"+hdnIsChangedId); 
            hidden.val("changed!!"); 
        }); 
    } );
  );