2011-10-15 79 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> 

我希望這有助於你的問題