2011-09-15 2 views
0

チェックされているすべてのチェックボックスを見つける方法をいくつか試しましたが、なぜこれが機能していないのか分かりません。チェックされているすべてのチェックボックスを見つけることは機能しません

はJavaScript:

var idList = new Array(); 
function getIds() 
{ 
    var loopCounter = 0; 
    // find all the checked checkboxes 
    $('input[name^="check_"]:checked').each 
    { 
     function() 
     { 
      //fill the array with the values 
      idList[loopCounter] = $(this).val(); 
      loopCounter += 1; 
     } 
    }; 
} 
function showArray() 
{ 
    alert(idList); 
} 

およびHTML/ERB:

<% user_project_ids = @users_projects.collect { |up| up.project_id } %> 

<fieldset style="width: 400px;"> 
    <legend>Current Projects</legend> 
    <table> 
     <tr> 
      <th>Project ID</th> 
      <th>Project Name</th> 
     </tr> 
     <% @projects.each do |project| %> 
     <tr> 
      <td><%= project.id %></td> 
      <td><%= project.project_number %></td> 
      <td><%= project.project_name%></td> 
      <td><input name="check_<%= project.id %>" type="checkbox" 
       <%=' checked="yes"' if user_project_ids.include? project.id %>></td> 
     </tr> 
     <% end %> 
    </table> 
</fieldset> 

<div onclick="getIds();"> 
    CLICK 
</div> 

<button onclick="showArray()">Click Again</button> 

これが動作していないが、おそらく誰かが私がすることはできません見ることができる理由はわかりません。 .eachする

答えて

2

パラメータは、他の答えはすでにあなたの問題についてあなたに話した丸括弧.each()

function getIds() 
{ 
    var loopCounter = 0; 
    // find all the checked checkboxes 
    $('input[name^="check_"]:checked').each(function() { 
     //fill the array with the values 
     idList[loopCounter] = $(this).val(); 
     loopCounter += 1; 
    }); 
} 
0

にする必要がありますが、あなたのコードを向上させることができます。ループカウンターを使用する必要はなく、それぞれが反復番号を提供します。

function getIds() 
{ 
    //reset idArray 
    idList = []; 
    // find all the checked checkboxes 
    $('input[name^="check_"]:checked').each(function(ind) { 
     idList[ind] = $(this).val(); 
    }); 
} 

私は答えを得た後、あなたが要素にアドバイスする男のための

function getIds() 
{ 
    //reset idArray 
    idList = []; 
    // find all the checked checkboxes 
    $('input[name^="check_"]:checked').each(function() { 
     idList.push($(this).val()); 
    }); 
} 
+0

感謝を追加するために、アレイ上のメソッドを持っている場合あなたも、インデックスを必要としない、まだ時間にそのようなことをしました。 – SD1990

関連する問題