2015-07-21 143 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

您将不得不在产品控制器中进行一项新操作,以便监听此获取请求。 –