【问题标题】:button submits rails form two times按钮提交 rails form 两次
【发布时间】:2012-10-24 13:38:52
【问题描述】:

使用 Rails 代码:

= button_to "-", availability_time_span_path(ts) ,:method  =>  :delete, :remote  =>  true

我生成html表单,应该通过ajax发布:

<form action="/availability_time_spans/175" class="button_to" data-remote="true" method="post">
  <div>
    <input name="_method" type="hidden" value="delete">
    <input type="submit" value="-">           
    <input name="authenticity_token" type="hidden" value="n962qRxizeXeoEwWYv2AlMfT4nKxxp9ITUxm5wp1nZo=">
  </div>
</form>

当我单击提交按钮时,它会发布两次。 曾经:来自 jquery.js:8417 的 text/javascript ,第二次为:来自其他的文本/html

【问题讨论】:

  • 使用 看看是否有效
  • 我应该使用什么 Rails 代码来生成这个?如果我只是粘贴已经生成的html表单并将类型设置为“按钮”,则根本不会提交表单。

标签: ruby-on-rails jquery ruby-on-rails-3.2


【解决方案1】:

已解决

问题是我之前使用 ajax 注入代码,但渲染器响应布局,所以整个 jquery 被第二次初始化。

respond_with @ra

如果我在没有布局的情况下呈现对 ajax 调用的响应,那就没问题了。

respond_with @ra, :layout => false 

【讨论】:

    【解决方案2】:

    这可能有几个原因

    1. 您的浏览器中可能缓存了 Javascript。尝试清除缓存或在其他浏览器中打开页面。
    2. 您可能正在提供预编译的资产。确保您的配置文件中有config.serve_static_assets = false

    【讨论】:

    • 我认为这是正确的方向,因为在 web 检查器中它向我显示 jquery.js:2678 和 undefined:2678 作为所有事件的事件侦听器。可能是 jquery 被加载或初始化了两次。清除缓存没有帮助,并且 config.serve_static_assets 设置为 false。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    相关资源
    最近更新 更多