0

ダイナミックcheckboxesは、以下のコードを使用して作成されます。

    var list = new Array();
    for(var i=0; i<data.length; i++)
    {
         $('#cContainer').append('<input type="checkbox" name="catChkBox" class="ckbox"
          id = "'+ data[i].id +'" value="'+ data[i].id + '" /> ' + data[i].name + '<br 
          />');
    }

上記のコードはdocument.ready関数内です。チェックされた値を収集したい。data[i].namedocument.readyに出してリストに入れます。

のみを表示する以下のコードを試しましたid。しかし、私が必要としているのはテキストです。ここにありますdata[i].name(これはdwr呼び出しから取得します)

function showSelectedValues()
{
  alert("--------------" + $("input[name=catChkBox]:checked").map(
     function () {return this.value;}).get().join(","));
}

showSelectedValues()値を利用する他のメソッドから呼び出します。これについてのアイデアはありますか???

4

3 に答える 3

2
$("input[name=catChkBox]:checked").val();
于 2013-04-12T11:43:35.763 に答える
1

それぞれcheckboxlabel

var list = new Array();
for(var i=0; i<data.length; i++)
{
     $('#cContainer').append('<input type="checkbox" name="catChkBox" class="ckbox"
      id = "'+ data[i].id +'" value="'+ data[i].id + '" /><label for="'+ data[i].id +'">' + data[i].name + '</label><br/>');
}

次に、以下のコードを使用して、チェックされたそれぞれに関連付けられたテキストを取得しますcheckbox

$("input[name=catChkBox]:checked + label").text();

アップデート :

値を配列に保存するには、以下のコードを使用します。

function ConvertSelectedValuesToList()
{
  list = $("input[name=catChkBox]:checked + label").map(function () {
      return $(this).text();
  }).get();
}

コンマで区切られた値の文字列を作成する場合は、 . のjoin(",")後に追加しますがget()、それはもはや配列ではありません。

于 2013-04-12T11:55:13.270 に答える
1

data[i].name入力要素に書き込まれることはなく、その一部ではありません。要素に続く単なるテキストです。

次のように、関心のある値含むdata-attribute を追加することをお勧めします。

var list = new Array();

for (var i = 0; i < data.length; i++) {
    $('#cContainer').append('<input type="checkbox" data-name="' + data[i].name + '" name="catChkBox" class="ckbox" id = "' + data[i].id + '" value="' + data[i].id + '" /> ' + data[i].name + '<br/>');
}

上記に注意してくださいdata-name="' + data[i].name + '"

次に、メソッドを更新して、次のように data 属性を単純にクエリできます。

function showSelectedValues() {
    alert("--------------" + $("input[name=catChkBox]:checked").map(function () {
        return $(this).data('name');
    }).get().join(","));
}

デモ- データ属性の使用


于 2013-04-12T11:56:06.683 に答える