Tengo un inconveniente con un proyecto rails, mas exactamente con una función javascript. Estoy tratando de terminar unos selects dinamicos que ayuden a seleccionar un municipio.
Osea, que se carguen unos municipios en un select en base al departamento seleccionado en otro select:
con este script:
dynamic_municipios.js.erb
Cita:
var municipios = new Array();
<% for municipio in @municipios -%>
municipios.push(new Array(<%= municipio.departamentos_id %>, '<%=h municipio.nombre %>', <%= municipio.id %>));
<% end -%>
function departamentoSelected() {
departamentos_id = $('municipios_departamentos_id').getValue();
options = $('negocios_municipios_id').options;
options.length = 1;
municipios.each(function(municipio) {
if (municipio[0] == departamentos_id) {
options[options.length] = new Option(municipio[1], municipio[2]);
}
});
if (options.length == 1) {
$('state_field').hide();
} else {
$('state_field').show();
}
}
document.observe('dom:loaded', function() {
departamentoSelected();
$('municipios_departamentos_id').observe('change', departamentoSelected);
});
<% for municipio in @municipios -%>
municipios.push(new Array(<%= municipio.departamentos_id %>, '<%=h municipio.nombre %>', <%= municipio.id %>));
<% end -%>
function departamentoSelected() {
departamentos_id = $('municipios_departamentos_id').getValue();
options = $('negocios_municipios_id').options;
options.length = 1;
municipios.each(function(municipio) {
if (municipio[0] == departamentos_id) {
options[options.length] = new Option(municipio[1], municipio[2]);
}
});
if (options.length == 1) {
$('state_field').hide();
} else {
$('state_field').show();
}
}
document.observe('dom:loaded', function() {
departamentoSelected();
$('municipios_departamentos_id').observe('change', departamentoSelected);
});
Todo iba bien, estoy siguiendo este tutorial:
http://railscasts.com/episodes/88-dynamic-select-menus
Pero al final cuando lo fui a probar, firebug me arrojo este error:
Cita:
He encontrado una supuesta solución de reemplazar jquery por prototype, pero no puedo hacer eso, estoy utilizando bootstrat.TypeError: document.observe is not a function
[Parar en este error]
document.observe('dom:loaded', function() {
[Parar en este error]
document.observe('dom:loaded', function() {
Agradezco sus aportes y consejos, este es mi gemfile:
Código HTML:
source 'https://rubygems.org' gem 'rails', '3.2.13' gem 'strong_parameters' gem 'mysql2' gem 'execjs','2.0.2' gem 'rake' , '10.1.1' gem 'therubyracer' gem "less-rails" # gem 'will_paginate', '3.0.3' group :assets do gem 'sass-rails', '~> 3.2.3' gem 'coffee-rails', '~> 3.2.1' gem 'uglifier', '>= 1.0.3' # ejecutar rails g bootstrap:install, despues del bundle install end gem 'twitter-bootstrap-rails' gem 'jquery-rails' gem "paperclip", :git => "http://github.com/thoughtbot/paperclip.git"
Cita:
//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .