Ruby on rails 动态菜单选择Rails don';行不通
我正在尝试构建一个链式选择菜单。这是我使用的教程: 出了点问题,我不知道我错过了什么 javascriptRuby on rails 动态菜单选择Rails don';行不通,ruby-on-rails,menu,chaining,Ruby On Rails,Menu,Chaining,我正在尝试构建一个链式选择菜单。这是我使用的教程: 出了点问题,我不知道我错过了什么 javascript var sottocategorie = new Array(); <% for element in @sottocategorie -%> sottocategorie.push(new Array(<%= element.idcategoria %>, <%= element.c2 %>)); <% end -%> funct
var sottocategorie = new Array();
<% for element in @sottocategorie -%>
sottocategorie.push(new Array(<%= element.idcategoria %>, <%= element.c2 %>));
<% end -%>
function selezionacategoria() {
categoriaid = $('segnalazione_categoria1').getValue();
options = $('segnalazione_categoria2').options;
options.length = 1;
sottocategorie.each(function(elementement) {
if (element[0] == categoriaid) {
options[options.length] = new Option(element[1]);
}
});
if (option.length == 1) {
$('sottocategoria_field').hide();
} else {
$('sottocategoria_field').show();
}
}
document.observe('dom:loaded', function() {
//selezionacategoria();
$('segnalazione_categoria1').observe('change', selezionacategoria);
});
链式选择菜单不运行,“过滤器”不工作,并且
if (option.length == 1) {
$('sottocategoria_field').hide();
} else {
$('sottocategoria_field').show();
}
不起作用。解决方案:
我使用jQuery更改了javascript文件:
var sottocategorie = new Array();
<% for sottocategoria in @sottocategorie %>
sottocategorie.push(new Array('<%= sottocategoria.idcategoria %>', '<%= escape_javascript(sottocategoria.c2) %>', <%= sottocategoria.id %>));
<% end %>
function menuSelected(orig_menu, new_menu, item_array) {
orig_value = $('#segnalazione_categoria1 :selected').text();
//alert(orig_value);
$(new_menu).empty();
jQuery.each(item_array, function(i, val) {
if (val[0] == orig_value) {
$(new_menu).append($("<option></option>").attr("value",val[2]).text(val[1]));
}
});
}
$(document).ready(function(){
//bind the click event to the city submit button
$('#submit_button').bind('click', function () {
menuSelected('#segnalazione_categoria1', '#segnalazione_categoria2', sottocategorie);
});
});
var sottocategorie=new Array();
sottocategorie.push(新数组(“”,,);
已选择功能菜单(原始菜单、新菜单、项目数组){
原始值=$('segnalazione'u categoria1:selected')。text();
//警报(原始值);
$(新建菜单).empty();
jQuery.each(项数组,函数(i,val){
if(val[0]==原始值){
$(新建菜单).append($(“”).attr(“value”,val[2]).text(val[1]);
}
});
}
$(文档).ready(函数(){
//将单击事件绑定到城市提交按钮
$(“#提交按钮”).bind('click',函数(){
所选菜单('segnalazione'u categoria1','segnalazione'u categoria2',sottocategorie);
});
});
具有三个链接级别的解决方案:
var sottocategorie = new Array();
var subsottocategorie = new Array();
<% for sottocategoria in @sottocategorie %>
sottocategorie.push(new Array('<%= sottocategoria.idcategoria %>', '<%= escape_javascript(sottocategoria.c2) %>', <%= sottocategoria.id %>));
<% end %>
<% for subsottocategoria in @subsottocategorie %>
subsottocategorie.push(new Array('<%= subsottocategoria.idsottocategoria1s %>', '<%= escape_javascript(subsottocategoria.c3) %>', <%= subsottocategoria.id %>));
<% end %>
function menuSelected(orig_menu, new_menu, item_array) {
orig_value = $(''+ orig_menu + ' :selected').text();
//alert(orig_value);
$(new_menu).empty();
jQuery.each(item_array, function(i, val) {
if (val[0] == orig_value) {
$(new_menu).append($("<option></option>").attr("value",val[1]).text(val[1]));
}
});
}
$(document).ready(function(){
$(".nascosto").hide();
$(".nascosto1").hide();
//bind the click event to the city submit button
$('#segnalazione_categoria1').bind('click', function () {
$(".nascosto").show();
$('#segnalazione_categoria3').empty();
menuSelected('#segnalazione_categoria1', '#segnalazione_categoria2', sottocategorie);
});
$('#segnalazione_categoria2').bind('click', function (event) {
$(".nascosto1").show();
menuSelected('#segnalazione_categoria2', '#segnalazione_categoria3', subsottocategorie);
});
});
var sottocategorie=new Array();
var substocategorie=新数组();
sottocategorie.push(新数组(“”,,);
推送(新数组(“”,,);
已选择功能菜单(原始菜单、新菜单、项目数组){
原始值=$(''+原始菜单+':选定')。文本();
//警报(原始值);
$(新建菜单).empty();
jQuery.each(项数组,函数(i,val){
if(val[0]==原始值){
$(新建菜单).append($(“”).attr(“value”,val[1]).text(val[1]);
}
});
}
$(文档).ready(函数(){
$(“.nascosto”).hide();
$(“.nascosto1”).hide();
//将单击事件绑定到城市提交按钮
$('segnalazione'u categoria1')。绑定('click',函数(){
$(“.nascosto”).show();
$('segnalazione'u categoria3')。空();
所选菜单('segnalazione'u categoria1','segnalazione'u categoria2',sottocategorie);
});
$('segnalazione'u categoria2')。绑定('click',函数(事件){
$(“.nascosto1”).show();
所选菜单(“#segnalazione_categoria2”和“#segnalazione_categoria3”,亚类);
});
});
解决方案:
我使用jQuery更改了javascript文件:
var sottocategorie = new Array();
<% for sottocategoria in @sottocategorie %>
sottocategorie.push(new Array('<%= sottocategoria.idcategoria %>', '<%= escape_javascript(sottocategoria.c2) %>', <%= sottocategoria.id %>));
<% end %>
function menuSelected(orig_menu, new_menu, item_array) {
orig_value = $('#segnalazione_categoria1 :selected').text();
//alert(orig_value);
$(new_menu).empty();
jQuery.each(item_array, function(i, val) {
if (val[0] == orig_value) {
$(new_menu).append($("<option></option>").attr("value",val[2]).text(val[1]));
}
});
}
$(document).ready(function(){
//bind the click event to the city submit button
$('#submit_button').bind('click', function () {
menuSelected('#segnalazione_categoria1', '#segnalazione_categoria2', sottocategorie);
});
});
var sottocategorie=new Array();
sottocategorie.push(新数组(“”,,);
已选择功能菜单(原始菜单、新菜单、项目数组){
原始值=$('segnalazione'u categoria1:selected')。text();
//警报(原始值);
$(新建菜单).empty();
jQuery.each(项数组,函数(i,val){
if(val[0]==原始值){
$(新建菜单).append($(“”).attr(“value”,val[2]).text(val[1]);
}
});
}
$(文档).ready(函数(){
//将单击事件绑定到城市提交按钮
$(“#提交按钮”).bind('click',函数(){
所选菜单('segnalazione'u categoria1','segnalazione'u categoria2',sottocategorie);
});
});
具有三个链接级别的解决方案:
var sottocategorie = new Array();
var subsottocategorie = new Array();
<% for sottocategoria in @sottocategorie %>
sottocategorie.push(new Array('<%= sottocategoria.idcategoria %>', '<%= escape_javascript(sottocategoria.c2) %>', <%= sottocategoria.id %>));
<% end %>
<% for subsottocategoria in @subsottocategorie %>
subsottocategorie.push(new Array('<%= subsottocategoria.idsottocategoria1s %>', '<%= escape_javascript(subsottocategoria.c3) %>', <%= subsottocategoria.id %>));
<% end %>
function menuSelected(orig_menu, new_menu, item_array) {
orig_value = $(''+ orig_menu + ' :selected').text();
//alert(orig_value);
$(new_menu).empty();
jQuery.each(item_array, function(i, val) {
if (val[0] == orig_value) {
$(new_menu).append($("<option></option>").attr("value",val[1]).text(val[1]));
}
});
}
$(document).ready(function(){
$(".nascosto").hide();
$(".nascosto1").hide();
//bind the click event to the city submit button
$('#segnalazione_categoria1').bind('click', function () {
$(".nascosto").show();
$('#segnalazione_categoria3').empty();
menuSelected('#segnalazione_categoria1', '#segnalazione_categoria2', sottocategorie);
});
$('#segnalazione_categoria2').bind('click', function (event) {
$(".nascosto1").show();
menuSelected('#segnalazione_categoria2', '#segnalazione_categoria3', subsottocategorie);
});
});
var sottocategorie=new Array();
var substocategorie=新数组();
sottocategorie.push(新数组(“”,,);
推送(新数组(“”,,);
已选择功能菜单(原始菜单、新菜单、项目数组){
原始值=$(''+原始菜单+':选定')。文本();
//警报(原始值);
$(新建菜单).empty();
jQuery.each(项数组,函数(i,val){
if(val[0]==原始值){
$(新建菜单).append($(“”).attr(“value”,val[1]).text(val[1]);
}
});
}
$(文档).ready(函数(){
$(“.nascosto”).hide();
$(“.nascosto1”).hide();
//将单击事件绑定到城市提交按钮
$('segnalazione'u categoria1')。绑定('click',函数(){
$(“.nascosto”).show();
$('segnalazione'u categoria3')。空();
所选菜单('segnalazione'u categoria1','segnalazione'u categoria2',sottocategorie);
});
$('segnalazione'u categoria2')。绑定('click',函数(事件){
$(“.nascosto1”).show();
所选菜单(“#segnalazione_categoria2”和“#segnalazione_categoria3”,亚类);
});
});
您使用的是哪个版本的rails?哪个js库原型是js还是jquery?Rails 3.0.5,我使用的是jquery 1.6.1ok。。。railscasts(相当旧)使用prototypejs代码,您使用jquery…好的,包括prototype.js,删除jquery1.6.1.js。。。不工作您正在使用哪个版本的rails?哪个js库原型是js还是jquery?Rails 3.0.5,我使用的是jquery 1.6.1ok。。。railscasts(相当旧)使用prototypejs代码,您使用jquery…好的,包括prototype.js,删除jquery1.6.1.js。。。不工作