2011-01-10 22 views
3

在我的控制,我有:梁2 replace_html提出的JavaScript到頁面

respond_to do |format| 
    format.js 
    end 

在我RJS:

page.replace_html("source_credential_list", :partial => "source_credential_list", :object => @all_source_credentials) 

page.replace("source_credential_list", :partial => "source_credential_list", :object => @all_source_credentials) 

在我的部分:(

<% fields_for(@brand_report_source_credential_key) do |ff| %> 
    <%= ff.select :source_credential_id , options_from_collection_for_select(@all_source_credentials,'id','credential_display_name')%> 
<% end %> 

在我的原稿觀點:

<span id="source_credential_list"> 
    <%= render :partial => 'source_credential_list' %> 
    </span> 

當我取代它的偉大工程,但只有一次,第二次,我收到了警報,空,我懷疑是因爲跨度走了。如果我做了replace_html,它有點作用,它會更新跨度,但它會將實際的rjs/javascript放入包括新選擇/下拉的跨度中。所以像這樣:

源憑據 嘗試{Element.update(「source_credential_list」,「\ n \ n \ n」); } catch(e){alert('RJS error:\ n \ n'+ e.toString()); alert('Element.update(\「source_credential_list \」,\「\ n \ n \ n \」);');拋出e}

我試着將跨度移入局部,並做兩個組合,但沒有任何工作。我敢肯定它的明顯的東西....

回答

1

我不知道什麼一段代碼觸發這個動作,但假設它是由一個link_to_remote調用觸發,請確保你沒有一個:更新=>「source_credential_list 「參數在您的link_to_remote調用 - 否則它將執行RJS並更新JavaScript代碼指定的元素。

在這裏看到:http://railsforum.com/viewtopic.php?pid=44191#p44191

而且,當你做page.replace,這不僅是因爲page.replace替換指定元素,包括周圍的標籤只能用一次,所以,除非你指定部分包括跨度標籤,它會在第一次使用時消失。

+1

真棒,你是對的,這是一個onchange => remote_function,但它也有一個更新子句。 – Joelio 2011-01-10 03:30:35