Ruby on Rails:使用select_tag触发操作

时间:2016-03-18 00:01:27

标签: ruby-on-rails ruby web-project

我有一个列出事件的应用程序。我希望用户能够按类别过滤事件。为了做到这一点,我希望有一个选择框,用户可以在其中选择一个类别。当用户选择一个类别时,我希望触发一个动作,该动作将使用javascript列出该类别的事件。解释如何执行此操作的所有Stack Overflow帖子都使用remote_function,这显然已经停止使用。现在,我有代码

select_tag "category",
    options_for_select(['Social', 'Academic','Sports and Recreation', 'Arts', 'Religious'])

如果更改/选择了下拉框中的选项,如何使用select_tag触发操作?我猜我可能不得不使用:onchange选项,但我不知道该怎么做。

请帮忙!

3 个答案:

答案 0 :(得分:1)

select_tag "category",
  options_for_select(['Social', 'Academic','Sports and Recreation', 'Arts', 'Religious']), :onchange => 'yourJSFunction()'

这就是options - 哈希参数可以用于:)

答案 1 :(得分:1)

select_tag有一个options哈希(最后一个参数),您可以在其中为select添加任何HTML属性。

有关详细信息,请查看http://apidock.com/rails/ActionView/Helpers/FormTagHelper/select_tag

要添加onchange属性,请查看以下示例:

select_tag "category", options_for_select(['Social', 'Academic','Sports and Recreation', 'Arts', 'Religious']), :onchange => 'your_handler_function()'

答案 2 :(得分:1)

在选择标记之后将其粘贴在视图中:

<script>
  $('#your_select_tag_id').on('change', function() {
    $.post({
      url: '/your/form/action',
      data: $('#your_form_id').serialize()
    }).success(function(data)) {
      console.log('this is what I got back: ' + data);
    };
  }
</script>