0

以下は私のコードであり、ページのロードが正常に機能し、配列にはチェックしたデータが含まれています。

<div id="checkBoxes">
<input type="checkbox" class="applicationCheckbox" value="1" />
<input type="checkbox" class="applicationCheckbox" value="2" />
<input type="checkbox" class="applicationCheckbox" value="3" />
<input type="checkbox" class="applicationCheckbox" value="4" />
</div>

<script type="text/javascript">
$(".applicationCheckbox:checked").each(function(){
    applications[i] = $(this).val();
    i++;
});
</script>

しかし、jquery .append() からいくつかのチェックボックスを追加し、追加されたチェックボックスを選択すると、配列は Empty を返します:(

修正するのを手伝ってください。

4

2 に答える 2

1

clickまたはイベントをチェックボックスに添付changeします。

  $(function(){
       $('body').on('click',.applicationCheckbox , function(){
           $(".applicationCheckbox:checked").each(function(i){
              applications[i] = $(this).val();
            });
        });
    });

要素を動的に追加しているため、イベントを委任する必要があります。

ボディは任意の静的な親に置き換えることができます..

完全なコード

var applications = [];
$(document).on('click', '.applicationCheckbox', function() {

    applications = $(".applicationCheckbox:checked").map(function() {
        return this.value;
    }).get();

    console.log(applications);
});

var i = 5;
$('#btn').on('click', function() {
    $('#checkBoxes').append('<input type="checkbox" class="applicationCheckbox" value="' + i + '" />');
    i++;
});​

フィドルをチェック

于 2012-12-03T21:24:44.637 に答える