jquery - 如何在rails中通过collection_select进行ajax搜索?

标签 jquery ruby-on-rails ajax

我试图通过选择特定的州来显示城市。但我不知道如何使用数据“collection_select 中的选定选项”发出 ajax 请求。

form 

%= form_for @college do |f| %>
<div class="form-group">

    <%= f.label "Select state"%>
    <%= f.collection_select(:state_id, @state, :id, :state,  {},  {class: "form-control", :id => "state_select"})%>
</div><br>
  <div class="form-group">
    <%= f.label :city_id, "Select city"%>
    <%= f.collection_select(:city_id, @city, :id, :city,  {},  {class: "form-control", :id => "city_select"})%>
</div><br>
<div class="form-group">
    <%= f.label :college, "college Name"%>
    <%= f.text_field :college, class: "form-control", placeholder: "Enter college name", required: true%>
    <br>
</div>
<div class="form-group">
    <%= f.submit class: "btn btn-primary"%>

</div>
<% end %>

 Controller for update
 def update_cities
 @cities = City.where("state_id = ?", params[:state_id])
 respond_to do |format|
  format.js
 end
 end

 JS incomplete

 $('#state_select').on('change', function(){
 $('#city_select').value.empty;
 })

最佳答案

您需要进行 ajax 调用并通过 javascript 进行填充。

$('#state_select').on('change', function(){
    $.ajax({
      url: "/update_cities",
    })
    .done(function(data) {
       $.each(data, function (i, item) {
        $('#city_select').append($('<option>', { 
            value: item.value,
            text : item.text 
        }));
       });
    });
});

关于jquery - 如何在rails中通过collection_select进行ajax搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36990869/

相关文章:

javascript - ContentTools - 如何使用纯 js/jquery 添加新工具?

javascript - 将表值从另一个表移动到另一个表并返回

css - 如何使用 css、字形和符号格式化 f.submit?

c# - pagedList中如何使用ajax

javascript - .change() 与 .on( "change", handler ) 在 jQuery 中

html - 使用 Nokogiri 迭代样式属性

jquery - 验证检查带有单独提交按钮的动态文本框

ajax - 将POST与core-ajax-dart结合使用时无法将JSON数据发送到服务器REST API

javascript - 并非所有请求参数都显示ajax node.js

jquery - 即使在网站刷新后如何检查跨度是否有值(value)