簡體   English   中英

Rails:部分中的遠程表單:一次工作,而不是兩次

[英]Rails: Remote Form in a Partial: works once , not twice

我最近幾天遇到了一個問題。 我想使用遠程表單更新對象。 我第一次提交表單時基本上可以更新我的對象,但第二次不起作用。

所以,我有一個偏遠的形式。

視圖/任務/ _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..."

這是我的控制器/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函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM