jquery - 在 ruby​​ on Rails 中使用 jQuery 绑定(bind)下拉菜单

标签 jquery ruby-on-rails jquery-ui

我在 html.erb 文件中有以下表单

users.html.erb

 <% form_tag (:action =>:abc_action)do%>
                            <%= label_tag(:user,"Select User") %><br/>
                             <%=collection_select("user",id",@result,"uid","uid",:prompt=>"--Select User--")%><br/>
    <%= collection_select("subject", "id",@res,"id", "id",:prompt=>"--Select Subject--")%><br/>

   <%= submit_tag 'Submit',:id => 'btn'%>
                    <%end %>

我想根据第一个下拉列表的选定值更改第二个下拉列表的内容。

为此,我在第一个下拉列表的更改事件上调用 jQuery 方法。 Controller 工作正常, Controller 返回值为数组类型。

我的 jQuery 代码是......

jQuery(document).ready(function() {
jQuery("#edetail_id").change(function() {
    jQuery.get('/requests/find_val/?emid=' + jQuery("#user_id").val(),function(data)
   {

          jQuery("#subject_id").html(data);
   }); 
 });
});

我的 Controller 是Users_controller.rb

 def find_val
 @acc = user.find(:all, :conditions => ["uid = ?", params[:emid] ])
     @res = Array.new
                            for result in @acc
                                    @res << result.ndid
                            end

          render :text => @res

 end

请任何人帮助我..我该怎么做?

最佳答案

我必须猜测一下,但我认为这会将您推向正确的方向。我真的不喜欢rails select helpers来处理这类事情。您可能只是在 erb 循环中进行常规 html 选择

<% form_tag (:action =>:abc_action)do%>
     <%= label_tag(:user,"Select User") %><br/>
     <%=collection_select("user","id", @result,"uid","uid",:prompt=>"--Select User--")%>
     <div id="result_holder">
      <%= collection_select("subject", "id",@res,"id", "id",:prompt=>"--Select",    
     :html=> {:id => "result"})%>
     </div>
    <br/>
     <%= submit_tag 'Submit',:id => 'btn'%>
   <%end %>

jQuery

jQuery(document).ready(function(){
jQuery("#edetail_id").change(function() {
    var id =  jQuery("#user_id").val()
    jQuery.get('/requests/find_val/' + id)
});

路线.rb

match "/users/find_val/:id" => "users#find_val", :as => :todo_select

我猜您希望将主题设置为所选用户

def find_val
 @subjects = User.find(params[:id]).subjects
end

views/users/find_val.js

$("#result_holder").empty().append("<%=j( collection_select("subject", "id",@subjects,"id", "id",:prompt=>"- -选择主题--")%>")

关于jquery - 在 ruby​​ on Rails 中使用 jQuery 绑定(bind)下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13971366/

相关文章:

ruby-on-rails - mongoid db 中的 pluck vs distinct。哪个更快?

ruby-on-rails - 我收到错误消息 :in `tr' : invalid byte sequence in UTF-8 (ArgumentError) when I run: ruby dk. rb init

javascript - 如何从javascript中的rgb字符串中提取颜色值

JavaScript : how to use delegate on each dynamically added div

JQueryUI 可排序 |新元素在连接的可排序项中的位置

jquery - 如何在弹出窗口中显示 jQuery 页面?

javascript - 如何从kendo datepicker仅获取年份?

mysql - rails 上的 ruby : rake aborted bad file descriptor

javascript - 根据屏幕分辨率显示内容

jquery 取消脚本后的点击操作