Rails 3形成问题:如何使用“添加新...”选项创建“选择”?

时间:2010-12-11 21:35:06

标签: javascript ruby-on-rails forms select

我想创建一个包含当前现有品牌的select框(例如索尼,松下等)。另外,我希望有Add New Brand选项,这样当用户点击此选项时,会出现一个新的文本字段。

Rails 3中是否有任何辅助方法可以执行此类操作,或者我需要使用Javascript自行实现此方法?

2 个答案:

答案 0 :(得分:6)

据我所知,没有这样的辅助方法。

以下是我在JS中的表现:

document.getElementById('someSelectBox').onchange = function() {
    if(this.selectedIndex != this.options.length -1) return;
    var new_name = prompt('Please enter a name');
    if(!new_name.length) return;
    var textbox = document.createElement('input');
    textbox.value = new_name;
    this.parentNode.appendChild(textbox); //parentNode is presumably the form
}

工作示例:http://jsfiddle.net/tCBqA/

答案 1 :(得分:2)

查看以下视频@ RailsCasts.com。 Ryan Bates解释了如何创建嵌套表单,然后使用jQuery或Prototype动态添加和删除字段。它不是一个完美的匹配你的问题,但应该让你朝着正确的方向前进。如果你得到一些效果很好的代码,可以考虑将其发回给这个问题,供所有人查看。

http://railscasts.com/episodes/196-nested-model-form-part-1

http://railscasts.com/episodes/197-nested-model-form-part-2