如何通过Rails中的链接传递下拉表单中的值?

时间:2013-05-23 16:57:35

标签: ruby-on-rails ruby-on-rails-3 forms parameter-passing

我的页面上有一个名为language的下拉列表选项,其中包含其他元素。当表单正常提交(提交所有内容)时,我可以使用params[:langauge]访问下拉列表的值。

我在页面上有另一个链接/按钮,当点击它时,应该获得语言的值并将其传递给控制器​​。然后控制器可以运行一些ajax来更改页面上的语言。但是如何通过链接传递(仅)下拉列表的值?

更新: 我应该用Jquery获取值,还是有更简单的方法?

 $('select[name="language"]').val()

2 个答案:

答案 0 :(得分:1)

如果这是一个链接,唯一使用的方法是查询字符串

<a href="controller/method?lan=something">that link</a>

您可以通过JS获取该链接的“href”,然后使用this method更新查询字符串。

然后该方法将能够处理正确的参数。

如果这是一个按钮,这意味着一个迷你形式,你可以在表单中设置一个隐藏字段,并使用jQuery来更新它的值。发送时,控制器方法将知道该值。

答案 1 :(得分:0)

每当下拉值发生变化时,此javascript代码都应更新URL。

$(function() {
$('#link-button').attr("href", "/link_path/" +$(this).val())
    $("select#language").change(function() {
        $('#link-button').attr("href", "/link_path/" +$(this).val())
    });
});