2011-10-08 88 views
0

我想知道是否至少有一個插件或教程如何製作動態選擇表單?動態列表中的軌道3

我想選擇使用f.select的汽車名稱,並且取決於在接下來的f.select中選擇的carname將僅顯示屬於汽車名稱的模型。 我試過Railscasts解決方案,但它似乎是舊版本的Rails或我做錯了什麼。 謝謝。

我用導軌3.0和我試過railscasts爲http://railscasts.com/episodes/88-dynamic-select-menus

+0

你可以添加一些信息,以您的問題,其RailsCast你已經盡力了,你想用什麼版本的Rails的? 3.1?你想要實現的確切順序是:「1.我從下拉列表中選擇一個汽車名稱2.汽車模型列表應該被填充,以便只有適合汽車名稱的模型可以被選擇「 – mliebelt

+0

和我有更多的細節,我成功地將所有的模型,我有下拉列表工作正常,除了動態形式,我打算使用jquery ..但直到那裏我堅持使用meta_search和dropdownlist創建一個高級搜索表單。這裏是充分描述的問題http://stackoverflow.com/questions/7696765/meta-search-undefined-method-error – rmagnum2002

回答

3

沒有自動的方式(如果我理解正確的 - 當用戶以某種選擇框中選擇carname,在另一個選擇框的選項必須發生相應的變化) 。我會假設carmodel是一個選擇框,但如果它是一個文本框,你仍然可以使用相同的解決方案。您基本上有2個選項:

  • 在兩個選項中,您必須勾選選擇框的更改事件。你可以使用例如jQuery爲此:http://api.jquery.com/change/
  • 選項1不帶Ajax:將JSON格式的所有車型輸出到頁面中(如var carModels = {...}),然後在carname選擇框的change事件中使用javascript/jQuery將僅適用於carModel的模型添加到選擇框選項中
  • 選項2 with Ajax:在選擇carname選擇框中,向服務器發送Ajax請求($ .post from jQuery)並提供關於所選值的信息在汽車。服務器應該以JSON格式返回適當車型的列表。獲得此結果後,只需將所有值插入選擇框即可。爲了從服務器以json格式返回這些數據,你需要創建一個像get_models這樣的post操作。要以json格式返回數據,您可以使用render:text => @ models.all.to_json

由於您需要較少的Javascript邏輯,所以Ajax解決方案將更容易。

要了解如何在這個問題與jQuery的外觀添加選項來選擇框:What is the best way to add options to a select from an array with jQuery?

+0

我已經找到了jquery動態教程這裏http://puneetpandey.com/2011/05/jquery -on-rails3-auto-select /我打算使用這一個,因爲我看過的其他方法都沒有給出結果 – rmagnum2002