0

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

这是我的 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 />
}}

这是我试过的-

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]);
         }
    ...............
   }
4

3 回答 3

2
        **$("#Brands").attr("checked"," ")**

在上面的行中,您正在使用ID访问复选框,但如果有多个具有相同 ID 的复选框,则它仅适用于第一个复选框。因此,为所有复选框添加一个类属性,然后使用该类访问它们。

于 2013-09-19T11:56:31.357 回答
0

为了使它工作,你可以尝试如下,

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

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" />

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

   for(int i=0;i<data.Configuration.OfficeBrands.count;i++)
   {
      $( "input[name*='"Brands"+i+"]"').attr('checked', data.Configuration.OfficeBrands[i]);
   }
于 2013-09-19T12:41:35.403 回答
0

这对我有用-

$.each(data.Configuration.OfficeBrands, function(i, brand) {
$(':checkbox[Value="' + brand.ID + '"]').prop('checked', true);});
于 2013-09-26T07:56:47.270 回答