首页 > 解决方案 > 城邦红宝石宝石javascript不工作

问题描述

我正在使用城市状态 gem(https://github.com/loureirorg/city-state)并尝试制作一个选择一个状态的表单,然后根据所选状态使用javascript动态更新城市,但它不工作.

我的html表单是:

<select id="states-of-country" name="project[state]">
<option id="no-state" value="" selected>Select Your State</option>  
<% CS.states(:us).each do |key, value| %>
<option value="<%= value %>" id="<%= key %>"><%= value %></option>
<% end %>
</select>      
<select id="cities-of-state" name="project[city]" class="form-control form-control-small" required>
<option value="" selected>Select Your City</option>
</select>

javascript是:

   $(document).on('change', '#states-of-country', function(e) {
  var cities_of_state, input_state, state;
  input_state = $(this);
  cities_of_state = $('#cities-of-state');
  state = this.options[e.target.selectedIndex].id;
  if (state === 'no-state') {
    return cities_of_state.html('');
  } else {
    $.ajax({
      url: '/cities/' + $(this).children(':selected').attr('id'),
      success: function(data) {
        var opt;
        opt = '<option value="" selected>Select Your City</option>';
        if (data.length === 0) {} else {
          data.forEach(function(i) {
            opt += '<option value="' + i + '">' + i + '</option>';
          });
          cities_of_state.html(opt);
        }
      }
    });
  }
});

标签: javascriptruby-on-railsrubyajaxruby-on-rails-4

解决方案


推荐阅读