2011-10-15 34 views
0

使用I产生5 UserPrices所以用户填写所有相同表单字段的5嵌套形式的日期:方法,使date_select字段是对所有其他date_select领域

UserPricesController

def add_store_prices 
     @a_new_user = User.new 
     5.times do 
      @a_new_user.user_prices.build 
     end 
    end 

我有一个字段名为:PURCHASE_DATE这是一个date_select(日期下拉菜单)字段:

<%= f.date_select :purchase_date %> 

我想只使用一个UserPrice date_select作为其他4个UserPrices的日期,这样用户不必选择5日期下拉菜单,只能选择一个,是否有一个jQuery插件或JavaScript代码来做到这一点可能?

P.S .:这是它现在的样子,我想摆脱其他4日期行,只有一个。

As of now

+0

遗憾是很难理解 – david

+0

你知道有关的Ruby-on-Rails的? – LearningRoR

+0

那么这个问题是针对Ruby on Rails的,但我会为它编写一般的jQuery或JavaScript。 – LearningRoR

回答

1

新版本更通用,这将只要你有一个最后的一个下划线和一个整数开始更改日期的任何量将选择在1,每个SELCT ID

<select id="purchase_date_month_1" onchange="changesPurchaseDates(this)"><option>10<option>12</select> 
<select id="purchase_date_day_1" onchange="changesPurchaseDates(this)"><option>29<option>28</select> 
<select id="purchase_date_year_1" onchange="changesPurchaseDates(this)"><option>2010<option>2011</select> 

所以剩下的都是

<select id="purchase_date_month_2"> 
<select id="purchase_date_day_2"> 
<select id="purchase_date_year_2"> 

<select id="purchase_date_month_3"> 
<select id="purchase_date_day_3"> 
<select id="purchase_date_year_3"> 

....到(N)个或第五那么你可以使用此功能选择,这将改变重的第一个选项maining。

<script> 

function changesPurchaseDates(n) { 
var arr_purdate_selects = []; // object to store the select boxs 

var nd = (n.id).slice(0,(n.id).lastIndexOf("_")); // slice off the remaining from last underscore 

arr_purdate_selects = document.getElementsByTagName("select"); // store all found selects Diry i know 
// loop throught all selects 
for (var i = 1; i < arr_purdate_selects.length; i++) { 
// only if the ids match the change those 
    if(nd == (arr_purdate_selects[i].id).slice(0,(arr_purdate_selects[i].id).lastIndexOf("_"))){ 
    document.getElementById(arr_purdate_selects[i].id).selectedIndex =  document.getElementById(nd+"_"+1).selectedIndex; 
    } 
} 

} 


</script> 

我希望这有助于你的问题