2017-11-11 147 views
0

若干嵌套形式我有这种选择在滑轨显示在滑轨

<%= g.select :num_periods, options_for_select([["Mensual", 12], ["Semestral", 6], ["Trimestral", 4], ["Anual", 1]]) %> 

根据我想显示n次此嵌套形式所选择的选项。 (我有一个循环,现在显示它)

<% for i in (1..4) %> 
    <%= g.fields_for :periods do |p| %> 
    <%= p.label "Propuesto" %> 
    <%= p.number_field :proposed, class:"form" %> 
    <%= p.hidden_field :reached, :value => -1 %> 
<% end %> 

我发现,这可能使用JQuery达到,但我不知道怎么了,可能有人帮助我吗?

+0

继续看看你的循环的HTML输出,并编写一个jQuery函数,将它输出到所需容器的'x'次。如果不知道你要在这里做什么,很难解释得更彻底。 –

回答

0

select选项将生成html,即您的起点编写jquery函数。你需要与chrome developer tolls检查在你的页面生成的HTML

<%= g.select :num_periods, options_for_select([["Mensual", 12], ["Semestral", 6], ["Trimestral", 4], ["Anual", 1]]) %> 

它看起来应该像这样从ActionView::Helpers::FormOptionsHelper的API页面:

<select name="g[num_periods]" id="g_num_periods"> 
    <option value="12">Mensual</option> 
    <option value="6">Semestral</option> 
    <option value="4">Trimestral</option> 
</select> 

那么容易的选择,在视图中显示所有输入字段,并根据您的需要隐藏那些不需要的字段。因此,他们都将被隐藏,你可以告诉你需要用一个:

$('select').change(function(){ 
    $('select option:selected').click(function() { 
     var option_selected = $(this).text(); 
     //now you need to find the div to show and use the .show function to display it 
     }); 
}); 

这是我jsfiddle

我知道这是不是一个很好的解决方案,但我没有全部来自信息你的代码也,我不知道该附加格的形式将允许你这样做POST请求,因为在防止CSRF

形式的authenticity_token另外这给你更多的信息关于authenticity token