如何使js成为通过ajax提交的rails表单的格式



我有这样的表格:

<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格式发送该表单?

感谢

将ID添加到表单提交:

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

然后在JS中而不是这个:

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

进行

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

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

<%= form_for(relationship, :remote => true, :html => { "data-type" => :js } ) do |f| %>
  1. 将relationship_form id设置为表单

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

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

$js.post("/relationship.js", $js("#relationship_form").serialize());

最新更新