RoR:form.select + onchange没有将参数中的正确值传递给控制器
我在Ruby on Rails表单中有一个select菜单,定义如下:
"Menu1_Id", :class => "Menu1_Class"} %>
我正在使用事件处理程序在选择一个选项时触发控制器操作,并且我想向其传递所选选项的值
$(function(){ $('.Menu1_Class').bind('change', function(){ alert($(this).val()); $.ajax('#{:controller => "TestsController", :action => "show"}?param_one='+$(this).val()); }); });
编辑:这是为我工作的js代码,感谢Robin的回答(注意我正在使用它来执行动作“get_results”而不是原来的“show”):
$(function(){ $('.menu_class').bind('change', function(){ $.ajax({ url: "", data: { param_one: $(this).val() } }); }); });
在我的控制器中
# GET /tests/1 # GET /tests/1.json def show @test = Test.find(params[:id]) if params[:param_one].present? @blah=params[:param_one] puts "show : @blah = " + @blah.to_s + "\n" end respond_to do |format| format.html # show.html.erb format.json { render :json => @test } end end
这样,警报消息包含正确的值(value1或value2),但param_one不存在,因此puts不会为“param_one”返回任何内容,而我希望在那里看到“value1”或“value2”。
有人可以指点我在哪里做错了吗?
谢谢
将您的JavaScript更改为以下内容: