2

我有这个表格:

<div id='relationship_<%= relationship.id %>'>
  <% @value_id = "value_#{relationship.id}" %>
  <% @div_slider_id = "slider_value_#{relationship.id}" %>
  <% @form = "edit_relationship_#{relationship.id}"%>
  <%= form_for(relationship, :remote => true) do |f| %>
    <div id="<%= @div_slider_id %>"></div>
    <%= f.hidden_field :value, :id => "#{@value_id}" %>
  <% end %>
</div>

<script type='text/javascript'>
$(document).ready( function() {
  $(function() {
    $( "#<%= @div_slider_id %>" ).slider({
      orientation: "horizontal",
      range: "min",
      value: <%= relationship.value || 1 %>,
      min: 0,
      max: 100,
      change: function( event, ui ) {
        $( "#<%= @value_id %>" ).val( ui.value );

如果用户移动滑块,表单将作为 HTML 发送,而不是 JS

        $("#<%= @form %>").submit();
      }
    });
    $( "#<%= @value_id %>" ).val( $( "#<%= @div_slider_id %>" ).slider( "value" ) );
  });
});
</script>

移动滑块时如何以 JS 格式发送该表单?

谢谢

4

2 回答 2

2

向表单提交添加一个 ID:

<%= f.submit 'Ready', :id => "button_submit" %>

然后在 JS 而不是这个:

$("#<%= @form %>").submit();

$("#buttom_submit").click();

或者:尝试在表单声明中添加数据类型:

<%= form_for(relationship, :remote => true, :html => { "data-type" => :js } ) do |f| %>
于 2012-08-01T15:13:49.857 回答
0
  1. 设置relationship_form id 为form

2. 更改代码中的这一行:

$("#<%= @form %>").submit();

$js.post("/relationship.js", $js("#relationship_form").serialize());
于 2012-08-01T16:43:26.657 回答