【问题标题】:how to make js the format of a rails form submitted via ajax?如何使js成为通过ajax提交的rails表单的格式?
【发布时间】:2012-07-30 12:26:14
【问题描述】:

我有这个表格:

<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 格式的表单?

谢谢

【问题讨论】:

  • 我不明白。您不能发送 JS 格式,但您可以发送 JS 格式。
  • 为清楚起见编辑了我的问题
  • 嗨,我遇到了同样的问题,我发布了两个关于 here 的问题。它将作为 html 发送。我解决了这个问题并在同一篇文章中写了解决方案。看看能不能帮到你

标签: javascript jquery ruby-on-rails forms


【解决方案1】:

在表单提交中添加一个 ID:

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

然后用 JS 代替这个:

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

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

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

<%= form_for(relationship, :remote => true, :html => { "data-type" => :js } ) do |f| %>

【讨论】:

  • 感谢您的回答,但我实际上想摆脱按钮。我将编辑问题以使自己更清楚。
  • 编辑我的答案,尝试数据类型方法
  • 我最终使用了您的$("#buttom_submit").click(); 方法,并将display:none css 属性应用于按钮。谢谢
【解决方案2】:
  1. 将relationship_form id设置为form

2。 在您的代码中更改此行:

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

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

【讨论】:

    猜你喜欢
    • 2017-12-20
    • 1970-01-01
    • 2012-11-27
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多