20

如何在此处添加 onchange 事件?

框架:rails
数据库:MySQL

我正在填充数据库中的选项,这让我使用options_from_collection_for_select

select_tag(:variable,options_from_collection_for_select(:all, :id, :name))
4

4 回答 4

29

select_tagoptions哈希作为其最终参数,您可以在其中为选择添加任何 HTML 属性。所以要添加一个onchange属性:

select_tag :variable, options_from_collection_for_select(:all, :id, :name), onchange: 'yourOnChangeHandler()'
于 2009-06-11T05:21:08.273 回答
8

尝试类似:

:onchange => remote_function(:url => {:controller => 'controller', :action => 'action'})
于 2010-07-24T03:09:38.967 回答
7

对于 select_tag,只需添加:

{:onchange => "myHandler();" }

此外,如果 onchange 不起作用,您可能想尝试onChange使用大写 C。

最后,确保不要将 select_tag 与表单选择混淆。

请参阅我对类似问题的回答,仅关于表单选择而不是 select_tag

将 Onchange 事件添加到表单选择

于 2014-09-30T18:40:18.430 回答
0

您可能想要添加onchange内联属性:

select_tag(:variable,options_from_collection_for_select(:all, :id, :name)), {:onchange => "(function(e){ e.target.value }).apply(this,arguments)"}

就我而言,我不确定将命名函数放在哪里,或者有时我发现创建一个函数只是为了创建一个简单的标签很乏味。所以人们倾向于编写内联函数。

但是像这样的简单行是{onchange: "e.target.value"}行不通的,因为没有event定义变量(例如)。

解决方案将是一个接受参数的自执行函数

于 2018-04-18T15:02:04.703 回答