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 + , *: enter image description here

and here show.html.erb, shows empty column(it should filled 5,10,15,20) due issue. running same script here partial:

enter image description here

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

Popular posts from this blog

wordpress - (T_ENDFOREACH) php error -

Export Excel workseet into txt file using vba - (text and numbers with formulas) -

Using django-mptt to get only the categories that have items -