Javascript 动态下拉菜单祖先与rails 3
您好,我尝试过使用祖先和Rails3.2制作动态下拉菜单,但对javascript没有太多经验。 我有祖先树和广告(模型/控制器)的类别。广告应该有一个类别。所以我的想法是,当我创建一个广告时,我会从下拉菜单中选择一个类别。 例如,在分类中,我有 -汽车 -阿尔法罗密欧 - -145 - -146 -奥迪 --A4 我应该如何更改或创建javascript以获得first category.roots,在选择汽车获得(alfa romeo,audi)之后,在选择奥迪获得车型之后? 但我不知道如何更改javascript javascript\u控制器Javascript 动态下拉菜单祖先与rails 3,javascript,ruby-on-rails,dynamic,menu,ancestry,Javascript,Ruby On Rails,Dynamic,Menu,Ancestry,您好,我尝试过使用祖先和Rails3.2制作动态下拉菜单,但对javascript没有太多经验。 我有祖先树和广告(模型/控制器)的类别。广告应该有一个类别。所以我的想法是,当我创建一个广告时,我会从下拉菜单中选择一个类别。 例如,在分类中,我有 -汽车 -阿尔法罗密欧 - -145 - -146 -奥迪 --A4 我应该如何更改或创建javascript以获得first category.roots,在选择汽车获得(alfa romeo,audi)之后,在选择奥迪获得车型之后? 但我不知道如何
class JavascriptsController < ApplicationController
class JavascriptsController
动态类别
@categories=Category.root.all
结束
结束
动态_category.js.erb
var categories = new Array();
<% for category in @categories %>
category.push(new Array('<%= category.title %>', <%= category.id %>));
<% end -%>
function categorySelected() {
category_id = $('ad_category_id').getValue();
children = $('ad_category_id').children;
children.lenght = 1;
categories.each(function(category) {
if (category.children[0] == category.id) {
children[children.lenght] = new Child(category[1], category[2]);
}});
if (children.lenght == 1) {
$('category_field').hide();
}else {
$('category_field').show();
}
}
document.observe('dom:loaded', function() {
$('category_field').hide();
$('ad_category_id').observe('change', categorySelected);
});
var categories=新数组();
类别推送(新数组(“”,);
函数类别已选定(){
category_id=$('ad_category_id')。getValue();
children=$('ad_category_id')。children;
children.lenght=1;
类别。每个(功能(类别){
if(category.children[0]==category.id){
儿童[children.Length]=新儿童(类别[1],类别[2]);
}});
如果(children.lenght==1){
$('category_field').hide();
}否则{
$('category_field').show();
}
}
document.observe('dom:loaded',function()){
$('category_field').hide();
$('ad_category_id')。观察('change',categorySelected);
});
在这之后,我应该在ad_form.html.erb中添加什么
<div class="field">
<%= f.label(:category_id, "Select Category") %><br >
<%= f.select(:category_id, @categories.collect {|s| [s.title, s.id]}, :prompt => "Select something") %>
</div>
<% javascript 'dynamic_category' %>
“选择某物”)%%>
您的问题很不清楚。请重写描述,以便我们能够准确地看到您正在努力实现的目标。另外:javascript中有多个输入错误,例如在第3行和最后一个if语句中。请解决这些问题。进一步的问题:当用户选择根类别时,会发生什么?分类树有多深?另外:请注意,您正在跟踪的Railscast已经有4年了,jQuery从那时起已经发生了变化。您好,谢谢您的回答,我想做一些类似于动态分类选择的事情。我用祖先来分类,我有根“汽车”,然后是children_stage1=CarMarke(本田),children_stage2=CarModel(思域)。当我创建广告时,我希望有机会选择第一辆车->然后是CarMarke,然后是CarModel。问题是我不知道如何修改这个脚本