0

我有一个复选框列表,如下所示:

在此处输入图像描述

该列表的代码是:

@foreach (extranetClient.Models.Classes.FonctionContact fonction in ViewBag.Fonctions)
            {
               string coche = "";
               if ((@Model.ListeFonctions).Any(c => c.IdFonction == fonction.IdFonction))
               {
                    coche = "checked";
               }                                                   
               <input type="checkbox" @coche id="checkbox" value="@fonction.IdFonction" />@fonction.LibelleFonction <br />
            }

所以现在我想获取每次检查其中一个时在列表中检查的所有复选框的值。所以我试过了:

$("#checkbox").click(function () {
     var TabIdFonctions = new Array();
     var compteur = 1;
     $("input[type='checkbox']:checked").each(
        function () {
            TabIdFonctions[compteur] = $(this).val();
            compteur++;
        });
 });

但它不起作用,我真的不知道为什么。希望有人有想法。

4

2 回答 2

0

在 javascript 数组中索引为 0。但是您可以改用该.push方法。此外,您应该使用类选择器,而不是 id 选择器,因为您只能拥有一个具有给定 id 的元素:

$('.checkbox').click(function () {
     var TabIdFonctions = new Array();
     $('.checkbox:checked').each(function () {
         TabIdFonctions.push($(this).val());
     });
});

也不要忘记给你的复选框一个类,而不是 id:

<input type="checkbox" @coche class="checkbox" value="@fonction.IdFonction" />
于 2013-08-12T07:52:40.433 回答
0

javascript代码

var els = document.getElementsByTagName('input');
for (var i = 0; i < els.length; i++) {
    var el = els[i];
    if (el.checked == true) {
        TabIdFonctions.push(el.value);
    }
} 
于 2013-08-12T07:59:04.117 回答