如何添加onchange事件以在rails中选择标记

时间:2009-06-11 05:05:18

标签: ruby-on-rails select onchange

如何在此处添加onchange事件?

框架:rails
数据库:MySQL

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

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

4 个答案:

答案 0 :(得分:21)

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

select_tag :variable, options_from_collection_for_select(:all, :id, :name), :onchange => 'your_onchange_handler()'

答案 1 :(得分:7)

答案 2 :(得分:3)

对于select_tag,只需添加:

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

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

最后,请确保不要选择带有表单选择的select_tag。

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

Adding An Onchange Event To A Form Select

答案 3 :(得分:0)

您可能想要内联添加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这样的简单行不起作用,因为没有定义变量(例如{{1}})。

解决方案是一个自动执行函数,接受参数