首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Rails中保存Scriptaculous滑块值

在Rails中保存Scriptaculous滑块值
EN

Stack Overflow用户
提问于 2011-02-26 00:28:24
回答 1查看 304关注 0票数 0

自己想出了答案,下面是解决方案.

我试着保存一个动态的滑块值,每次一个。主题has_many特性has_many评分。滑块值需要保存为评等。被试有一个动态数量的特征。

现在,滑块更新具有动态id的隐藏字段的值。我在将隐藏字段值传递给评级/创建时遇到了困难。

我想要完成的是一个主题显示视图,它列出了一个动态的特征数,每个特征都有一个滑块。我想保存滑块的价值,一个接一个与保存按钮或链接,作为一个评级。

任何帮助都将不胜感激。

科目- show.html.erb:

代码语言:javascript
复制
<style type="text/css">
  div.slider { width:256px; margin:10px 0; background-color:#b3b3b3; height:10px; position: relative; }
  div.slider div.handle { width:10px; height:15px; background-color:#474747; cursor:move; position: absolute; }
</style>

<p id="notice"><%= notice %></p>

<h1>
  <%= @subject.name %>
</h1>

<p>
  <%= @subject.description %>
</p>

<table>
  <tr>
    <th>Traits</th>
  </tr>

  <% @subject.traits.each do |trait| %>
    <tr>
      <td><%= link_to trait.name, trait %></td>&nbsp; &nbsp; &nbsp;
      <td><%= link_to 'Edit', edit_trait_path(trait) %></td>&nbsp;
      <td><%= link_to 'Destroy', trait, :confirm => 'Are you sure?', :method => :delete %></td>
    </tr>
    <tr>
        <td>
          #Slider value is sent here onChange. This value needs to be passed to rating#create
          <input id="trait.id", name="rating[value]", value="50" />

          <div id="s<%= trait.id %>" class="slider">
            <div class="handle"></div>
          </div>

          <script type="text/javascript">
            (function() {
              var trait_slider = $('s<%= h trait.id %>')

              new Control.Slider(trait_slider.down('.handle'), trait_slider, {
                range: $R(0, 100),
                sliderValue: 50,
                onChange: function(v) { $('<%= h trait.id %>').value = v }
              });
            })();
          </script>
        </td>
        <td>
          #How the hell do I save each slider value??? is this the best way of doing it?
          <%= link_to "save", :controller => "ratings", :action => "create" %>
        </td>
    </tr>
<% end %>
</table>

<br /><br /><%= render 'traits/form' %>

<%= link_to 'Edit', edit_subject_path(@subject) %> |
<%= link_to 'Back', subjects_path %>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-11 23:00:01

解决方案:多个表单和动态隐藏的div ID

代码语言:javascript
复制
<% @subject.traits.each do |trait| %>
    <%= form_for @rating do |rf| %>
      <tr>
        <td><%= link_to trait.name, trait %></td>&nbsp; &nbsp; &nbsp;
        <td><%= link_to 'Edit', edit_trait_path(trait) %></td>&nbsp;
        <td><%= link_to 'Destroy', trait, :confirm => 'Are you sure?', :method => :delete %></td>
      </tr>
      <tr>
          <td>
            <input id="<%= trait.id %>", name="rating[value]", type="hidden", value="50" />
            <%= rf.hidden_field :trait_id, :value => trait.id %>
            <%= rf.hidden_field :subject_id, :value => @subject.id %>

            <div id="s<%= trait.id %>" class="slider">
              <div class="handle"></div>
            </div>

            <script type="text/javascript">
              (function() {
                var trait_slider = $('s<%= h trait.id %>')

                new Control.Slider(trait_slider.down('.handle'), trait_slider, {
                  range: $R(0, 100),
                  sliderValue: 50,
                  onChange: function(v) { $('<%= trait.id %>').value = v }
                });
              })();
            </script>
          </td>
          <td> 
            <div class="actions">
              <%= rf.submit "Save Rating" %>
            </div>
          </td>
      </tr>
    <% end %>
  <% end %>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5124188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档