我如何在这里添加一个onchange事件?

框架:导轨,点击 数据库:MySQL的

我从数据库中填充的选项,这让我用options_from_collection_for_select

select_tag(:variable,options_from_collection_for_select(:all, :id, :name))
有帮助吗?

解决方案

select_tag 需要一个options散列作为其最后一个参数,您可以在其中添加对选择的任何HTML属性。所以要加一个onchange属性:

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

其他提示

你可以试试:

:onchange => remote_function(:url => {:controller => 'controller', :action => 'action'})

有关一个select_tag,只需添加:

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

另外,如果平变化不工作,你可能想尝试用大写C onChange

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

请参阅我的回答类似的问题,只有关于形式的选择,而不是select_tag

添加onChange事件到表单选择

您可能需要添加一个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)所定义。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top