javascript - Rails : Remote Form in a Partial: works once , 不是两次

标签 javascript jquery ruby-on-rails ruby forms

最近几天我遇到了一个问题。 我想使用远程表单更新对象。 第一次提交表单时,我基本上可以更新我的对象,但第二次就不行了。

所以,我有一个部分的远程表单。

查看/任务/_table_form.haml.erb

%tr{:class => "tr_mission_#{mission.id} tr_mission"}
  = form_for(mission, :url => mission_path(mission), :html => { :remote => true , :method=> :put, :format => :js, :multipart => true, :class => "my_remote_form" }) do |f|
    = f.text_area :description,  :size => "220x6", :class => "fill_data"
    = f.submit  'Update', :class => "btn btn btn-inverse", :disable_with => "updating..."

这是我的 Controller /app/controllers/missions_controller.rb

def update
    @mission = Mission.find(params[:id])
    respond_to do |format|
        format.html {
           render :action => "edit"
        }
        format.js {}
    end
  end

这是/missions/update.js.erb:

$('.tr_mission_<%= @mission.id %>').replaceWith('<%= escape_javascript( render :partial => "table_form", :locals => {:mission => @mission}).html_safe  %>');

我的对象的更新工作一次,而不是两次,在 firebug 控制台上,我可以看到我的表单类型是第一次:text/javascript,下次它打开 text/html...

感谢您的帮助。

最佳答案

这是第一次将 javascript 重新加载到您的页面中。所以它会起作用。 下次你的 javascript 不工作意味着你可能会在 document.ready 中添加你的脚本代码......

对于这个问题,您有两种解决方案:

  1. 您需要在每次更新时再次调用 javascript 文件。
  2. 您指定更新调用特定的 javascript 函数,并且必须在页面中每次更新时调用该 javascript 函数。

关于javascript - Rails : Remote Form in a Partial: works once , 不是两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12457650/

相关文章:

javascript - 具有两个输入的表单未提交?

javascript - "arr[i] = []"的位置怎么会导致代码崩溃?

jquery - 处理 jQuery Treetable 中的回调

ruby-on-rails - 在 ActiveAdmin 的标题菜单中添加自定义项

javascript - 一种重置 Chrome DevTools 控制台上下文的方法

javascript - 我应该使用 ref 还是 findDOMNode 来获取元素的 react 根 dom 节点?

jquery - 从existDB请求JSON

html - 在 Angular 5 App 中首次加载 App 时不播放背景视频

ruby-on-rails - rake 请求 :workers command forks infinite processes

mysql - 使用 Ruby on Rails 忽略 MySQL 查询中的重音