ruby on rails - jQuery function works in partial but not show -
i have jquery code counts current rows in table (and arithmetic) , adds them column. i've used script in _form/_partial , works great. however, when use same script inside show.html.erb (to setup same table again) not work.
here _form
<table id="mytable">     <th>rownumber</th>     <th>header2</th>     <th>header3</th>     <th>header4</th>           <%= f.nested_fields_for :partial |f|           render 'partial', f: f         end -%>           <caption align = "bottom"><%= link_to_add_fields "add field", f, :manual_iops %></caption> </table>   _partial.html.erb
<tr>  <td>     <!-- nothing goes here -->     </td>   <td>   <%= f.text_field :data1 %>  </td>   <td>   <%= f.text_field :data2 %>  </td>    <td>   <%= f.text_field :data3 %>  </td>  </tr>    <script>    $('tr').each(function(){      var index= $('#mytable').children('tr').index($(this))      if(index == 0){        var position= 5;      }      if(index == 1){        var position = 10;      }      if(index == 2){        var position = 15;      }      if(index == 3){        var position = 20;      }      if(index > 3){        var position = (index-1)*10      }      $(this).children('td').first().html(position);   }) </script>   now here i'm trying in show:
show.html.erb
<table id="mytable">   <th>rownumber</th>   <th>header1</th>   <th>header2</th>   <th>header3</th>      <% @data_sheet.partials.each |c| %>     <tr>       <td></td>       <td><%= c.data1 %></td>       <td><%= c.data2 %></td>       <td><%= c.data3 %></td>     </tr>   <script>      $('tr').each(function(){          var index= $('#mytable').children('tr').index($(this))          if(index == 0){                var position= 5;          }          if(index == 1){                var position = 10;          }          if(index == 2){                var position = 15;          }          if(index == 3){                var position = 20;          }          if(index > 3){                var position = (index-1)*10          }         $(this).children('td').first().html(position);     })   </script>      <% end %> </table>     here image of how _form looks, can see first column has values: 5, 10, 15, 20, due script in partial.html.erb counting rows , doing + , *: 
and here show.html.erb, shows empty column(it should filled 5,10,15,20) due issue.  running same script here partial:

so doing wrong in situation? thing see different loop , fact not rendering partial, see no reason why should effect javascript. i'm banging head against wall this.
ok, if want ruby it's easy:
<table id="mytable">   <th>rownumber</th>   <th>header1</th>   <th>header2</th>   <th>header3</th>    <% @count = 5 %>     <% @data_sheet.partials.each |c| %>     <tr>       <td><%= @count %></td>       <td><%= c.data1 %></td>       <td><%= c.data2 %></td>       <td><%= c.data3 %></td>     </tr>   <% if @count >= 20 %>     <% @count = @count + 10 %>   <% else %>      <% @count = @count + 5 %>     <% end %> </table>     you can rewrite if , statement as:
<% @count >= 20 ? (@count = @count + 10) : (@count = @count + 5) %>      
Comments
Post a Comment