Ruby on Rails:用 select_tag 触发一个动作
Ruby on Rails: Triggering an action with select_tag
我有一个列出事件的应用程序。我希望用户能够按类别过滤事件。为此,我想要一个 select 框,用户可以在其中 select 一个类别。当用户 select 属于某个类别时,我希望触发一个操作,该操作将使用 javascript 列出该类别中的事件。所有解释如何执行此操作的 Stack Overflow 帖子都使用 remote_function
,这显然已被停用。现在,我有代码
select_tag "category",
options_for_select(['Social', 'Academic','Sports and Recreation', 'Arts', 'Religious'])
当下拉框中的选项为 changed/selected 时,如何使用 select_tag
触发操作?我猜我可能必须使用 :onchange
选项,但我不确定该怎么做。
请帮忙!
select_tag "category",
options_for_select(['Social', 'Academic','Sports and Recreation', 'Arts', 'Religious']), :onchange => 'yourJSFunction()'
这就是 options
-hash 参数的用途:)
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()'
将其粘贴在视图中 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>
我有一个列出事件的应用程序。我希望用户能够按类别过滤事件。为此,我想要一个 select 框,用户可以在其中 select 一个类别。当用户 select 属于某个类别时,我希望触发一个操作,该操作将使用 javascript 列出该类别中的事件。所有解释如何执行此操作的 Stack Overflow 帖子都使用 remote_function
,这显然已被停用。现在,我有代码
select_tag "category",
options_for_select(['Social', 'Academic','Sports and Recreation', 'Arts', 'Religious'])
当下拉框中的选项为 changed/selected 时,如何使用 select_tag
触发操作?我猜我可能必须使用 :onchange
选项,但我不确定该怎么做。
请帮忙!
select_tag "category",
options_for_select(['Social', 'Academic','Sports and Recreation', 'Arts', 'Religious']), :onchange => 'yourJSFunction()'
这就是 options
-hash 参数的用途:)
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()'
将其粘贴在视图中 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>