Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态下拉菜单祖先与rails 3_Javascript_Ruby On Rails_Dynamic_Menu_Ancestry - Fatal编程技术网

Javascript 动态下拉菜单祖先与rails 3

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)之后,在选择奥迪获得车型之后? 但我不知道如何

您好,我尝试过使用祖先和Rails3.2制作动态下拉菜单,但对javascript没有太多经验。 我有祖先树和广告(模型/控制器)的类别。广告应该有一个类别。所以我的想法是,当我创建一个广告时,我会从下拉菜单中选择一个类别。 例如,在分类中,我有

-汽车 -阿尔法罗密欧 - -145 - -146 -奥迪 --A4 我应该如何更改或创建javascript以获得first category.roots,在选择汽车获得(alfa romeo,audi)之后,在选择奥迪获得车型之后? 但我不知道如何更改javascript

javascript\u控制器

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。问题是我不知道如何修改这个脚本