Флажки form_for работают только на первой вкладке jquery

Я создаю form_for это в основном позволяет пользователю отмечать, когда он закончил видео. Я вкладываю эту форму во вкладки jQuery и хочу иметь один флажок на каждой вкладке, и до сих пор я получил это. Однако функциональность является той, которая терпит неудачу: только флажок на первой вкладке фактически изменяет значение, когда это передано. Любые идеи о том, как это исправить?

<% for i in 1..@statement %>
<div id="htab-current-<%= i %>">
  <%= form_for @user.workouts.where(week_num:  @week).where(video_num_in_week: i).first.assignedworkouts.first, remote:true ,:html=>{:id=>'completed_form'} do |f| %>
    <%= f.check_box :completed, :onclick => "$('#completed_form').submit()" %>      
  <% end %>

  <div class='videowrapper2'>
    <div id="myElement<%= i %>">Loading the player ...</div>
    <script type="text/javascript">
      jwplayer("myElement<%= i %>").setup({
        skin: 'five',
        width: "100%",
        aspectratio: "4:3",
        listbar: {
          position: 'bottom',               
        },
        playlist: '<%=asset_path(@user.workouts.where(week_num:  @week).where(video_num_in_week: i).first.playlist_file ) %>'
      });
    </script>
  </div>
</div>

РЕДАКТИРОВАТЬ: Я попытался перебор, и на самом деле это была проблема с идентификатором в форме. Однако, когда я изменил его, чтобы он генерировался динамически, даже если идентификаторы в форме и вызов jQuery одинаковы, они, похоже, не работают.

<% for i in 1..@statement %>
<div id="htab-current-<%= i %>">
  <%= form_for @user.workouts.where(week_num:  @week).where(video_num_in_week: i).first.assignedworkouts.first, remote:true ,:html=>{:id=>"#{i}completed_form'"} do |f| %>
    <%= f.check_box :completed, :onclick => "$('#{i}completed_form').submit()" %>

    <% end %>
  <div class='videowrapper2'>
    <div id="myElement<%= i %>">Loading the player ...</div>
    <script type="text/javascript">
      jwplayer("myElement<%= i %>").setup({
        skin: 'five',
        width: "100%",
        aspectratio: "4:3",
        listbar: {
          position: 'bottom',               
        },
        playlist: '<%=asset_path(@user.workouts.where(week_num:  @week).where(video_num_in_week: i).first.playlist_file ) %>'
      });
    </script>
  </div>
</div>

1 ответ

Попробуйте с:

<% for i in 1..@statement %>
<div id="htab-current-<%= i %>">
  <%= form_for @user.workouts.where(week_num:  @week).where(video_num_in_week: i).first.assignedworkouts.first, remote:true ,:html=>{:id=>'completed_form'} do |f| %>
    <%= f.check_box :completed, :onclick => "$('#completed_form').submit()" %>

  <div class="videowrapper2">
    <div id="myElement<%= i %>">Loading the player ...</div>
    <script type="text/javascript">
      jwplayer("myElement<%= i %>").setup({
        skin: 'five',
        width: "100%",
        aspectratio: "4:3",
        listbar: {
          position: 'bottom',               
        },
        playlist: '<%=asset_path(@user.workouts.where(week_num:  @week).where(video_num_in_week: i).first.playlist_file ) %>'
      });
    </script>
  </div>
</div>

<% end %>
Другие вопросы по тегам