用jquery迭代一个复选框表

时间:2012-12-28 20:56:09

标签: c# jquery asp.net asp.net-mvc razor

我的asp.net mvc视图中有一个像这样编码的表:

<table>
  <tr>
   <td>Option 1<td>
   <td>Option 2<td>
   <td>Option 3<td>
   <td>Option 4<td>
  <tr>
foreach(var options in Model)
 {
  <tr>
   <td>@Html.ChecBoxFor(x => x.one)<td>
   <td>@Html.ChecBoxFor(x => x.two)<td>
   <td>@Html.ChecBoxFor(x => x.three)<td>
   <td>@Html.ChecBoxFor(x => x.four)<td>
  <tr>
 }
<table>

我试图弄清楚如何遍历每一行,然后有条件地切换某些复选框。例如,如果选中复选框1,则确保未选中复选框4,反之亦然。条件将分别适用于复选框2和3。

2 个答案:

答案 0 :(得分:0)

在JSFiddle中尝试过这个。陈词滥调看demo

    $(function() {
    $("#btn").click(function() {
        $("tr").each(function() {
            var $RowCheckBoxes = $(this).find("input:checkbox");

            // if checkbox one is checked then make sure checkbox four is unchecked
            if ($RowCheckBoxes.eq(0).is(':checked') == true) {
                $RowCheckBoxes.eq(3).prop("checked", false);
            }

            // The conditon would apply to checkboxes two and three respectively.
            if ($RowCheckBoxes.eq(1).is(':checked') == true) {
                $RowCheckBoxes.eq(2).prop("checked", false);
            }
        });
    });
});

答案 1 :(得分:0)

这个基本任务你不需要jquery,只需给你的复选框一个名字,然后:

var chk = document.getElementsByName("theName");
for(var i = 0; i < chk.length; i++){
  chk[i].whateverYouWant;
}