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

だから今、私はそれらの1つをチェックするたびに、リストでチェックされているすべてのckeckboxの値を取得したいと思います. だから私はそれを試しました:

$("#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 を持つ要素は 1 つしか持てないため、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 に答える