Ruby on Rails:使用 select_tag 触发操作

Ruby on Rails: Triggering an action with select_tag

提问人:dinosaurW 提问时间:3/18/2016 更新时间:3/18/2016 访问量:2553

问:

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

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

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

请帮忙!

Ruby-on-Rails Ruby Web 项目

评论


答:

1赞 Philipp Meissner 3/18/2016 #1

这就是 -hash 参数的用途:options

select_tag "category",
  options_for_select(['Social', 'Academic','Sports and Recreation', 'Arts', 'Religious']), :onchange => 'yourJSFunction()'
2赞 Thieu Nguyen 3/18/2016 #2

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

欲了解更多信息,请查看 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()'
0赞 Anthony Wang 3/18/2016 #3

将其粘贴在视图中,在 select 标记之后:

<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>