2011-10-08 90 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