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 );

ユーザーがスライダーを動かすと、フォームはJSではなくHTMLとして送信されます

        $("#<%= @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_formIDをformに設定します

2.コードの次の行を変更します。

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

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