2015-07-21 84 views
0

有一種方法可以從按鈕動態地輸入一個輸入嗎? 實施例:Rails 4 ajax加載部分視圖

這是以下形式:

<%= form_for(@order) do |f| %> 

。 ...

<div class="field"> 
    <%= f.label :productlist %><br> 
    <%= f.select :productlist, @products, :prompt => 'Select one!' %> 
    <%= link_to 'Add More', '#', id: 'products-link' %> 
    </div> 
    <div id="newproduct"> 
    <p>load here the new input on Add more link</p> 
    </div> 
    <div class="field"> 
    <%= f.label :status %><br> 
    <%= f.text_field :status %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

,所以我鑫卡特高達AJAX和方式來加載部分投入的形式,但我不是理解正確的方式做到這一點。

謝謝

+0

你可以更清楚你想通過添加部分通過ajax實現什麼。 –

+0

相同的選擇標籤到形式,正是這個: <%= f.select:productlist,@products,:prompt =>'選擇一個!' %> – starbuck

+0

您可以嘗試[EJS](http://www.embeddedjs.com/)模板。編寫通用的代碼裏面** ** EJS文件,並要求 – Abhi

回答

0

在你的JavaScript文件中加入:

$("a#products-link").click(function(){ 
    $.get('/partials/products_form', function(data){ 
     $("div#newproduct").append(data); 
    }, 'html'); 
    }); 

本質上正在發生的事情是,你會通過AJAX發送get請求,形式/partials/products_form或任何你選擇保留你的表格部分。然後這個html將被附加到你選擇的任何div /標識符div#newproduct

+0

感謝您的回覆,當使它: JS的似乎不是wotk也許我錯 這是控制器: HTTP ://pastebin.com/7khy5HR0 的形式爲: http://pastebin.com/Td2zmVAZ 部分: http://pastebin.com/KX1CrwQv 而JS: http://pastebin.com/MuvJHSDP – starbuck

+1

好的,你的JavaScript文件不應該是'create.js.erb'。它只是您資產文件夾中的常規JavaScript文件,例如'products.js'。你的'.get()'函數中的第一個參數是一個url,在我的情況下,我向'http://127.0.0.1:3000/partials/products_form'發送一個get請求。您想要向您的控制器中的某個操作發送獲取請求。您可以通過轉到命令提示符或終端並在應用程序目錄中鍵入'rake routes'來檢查所有操作的路徑。 –

+1

您將不得不在產品控制器中進行一項新操作,以便監聽此獲取請求。 –