Javascript 如何通过JQuery JSON数据获取复选框(@Html.CheckBox)的值

Javascript 如何通过JQuery JSON数据获取复选框(@Html.CheckBox)的值,javascript,jquery,asp.net,asp.net-mvc,json,Javascript,Jquery,Asp.net,Asp.net Mvc,Json,我想通过JQuery将值(无论是否选中)绑定到MVC 3中的@Html.CheckBox 这是我的HTML- @using (Html.BeginForm()) { IEnumerable<SelectListItem> Brands = ViewBag.GetBrands; foreach (var item in Brands) { @Html.CheckBox("Brands", false, new{value = item.Value}); <label>@

我想通过JQuery将值(无论是否选中)绑定到MVC 3中的
@Html.CheckBox

这是我的HTML-

@using (Html.BeginForm())
{
IEnumerable<SelectListItem> Brands = ViewBag.GetBrands;
foreach (var item in Brands)
{
 @Html.CheckBox("Brands", false, new{value = item.Value});
 <label>@item.Text</label><br />
}}
@使用(Html.BeginForm())
{
IEnumerable Brands=ViewBag.GetBrands;
foreach(品牌中的var项目)
{
@复选框(“Brands”,false,new{value=item.value});
@item.Text
}}
这就是我试过的-

function test {

    var url = "/OfficeManagement/Offices/GetOfficeConfiguration";
    var stringToReverse = rowData.ID;
    var noCache = Date();
    $.get(url, { officeID: stringToReverse, "noCache": noCache }, function (data) {
    for(int i=0;i<data.Configuration.OfficeBrands.count;i++)
         {
          $('#Brands').attr('checked', data.Configuration.OfficeBrands[i]);
         }
    ...............
   }
功能测试{
var url=“/OfficeManagement/Offices/GetOfficeConfiguration”;
var stringToReverse=rowData.ID;
var noCache=Date();
$.get(url,{officeID:stringToReverse,“noCache”:noCache},函数(数据){
对于(int i=0;i

在上一行中,您使用ID访问复选框,但是如果有多个复选框具有相同的ID,那么它将仅对第一个复选框有效。因此,向所有复选框添加一个类属性,然后使用类访问它们。

要使其起作用,您可以尝试如下操作:

创建具有唯一名称的复选框,如下所示:

int counter = 0;
foreach (var item in Brands)
{
     @Html.CheckBox("Brands" + counter, false, new{value = item.Value});
     counter++;
 }
它将创建类似以下内容的html标记:

<input type="checkbox" name = "Brands0" />
<input type="checkbox" name = "Brands1" />
<input type="checkbox" name = "Brands2" />
   for(int i=0;i<data.Configuration.OfficeBrands.count;i++)
   {
      $( "input[name*='"Brands"+i+"]"').attr('checked', data.Configuration.OfficeBrands[i]);
   }

然后在jquery中,可以检索如下值:

<input type="checkbox" name = "Brands0" />
<input type="checkbox" name = "Brands1" />
<input type="checkbox" name = "Brands2" />
   for(int i=0;i<data.Configuration.OfficeBrands.count;i++)
   {
      $( "input[name*='"Brands"+i+"]"').attr('checked', data.Configuration.OfficeBrands[i]);
   }
for(inti=0;i这对我来说很有用-

$.each(data.Configuration.OfficeBrands, function(i, brand) {
$(':checkbox[Value="' + brand.ID + '"]').prop('checked', true);});

看起来会有多个复选框。所以把你的HTML放在一个容器中(一个div或类似的东西)然后循环检查该div中的所有复选框。是的,有多个复选框。它已经在一个
中了,所以在javascript函数中,循环检查每个复选框并分配属性。我希望我做了相同的操作。您是在数据中循环,而不是在复选框中循环。