我在哪里以及如何为rails 3.1选择标记onchange事件编写事件处理程序?

时间:2013-12-28 17:42:09

标签: javascript ruby-on-rails ruby coffeescript

我正在尝试为Rails 3.1选择标记执行一个非常基本的onChange事件处理程序。我发现的大多数解决方案都是针对ajax的,但我正在寻找更简单的东西,而我编码的内容似乎甚至都没有得到认可。在我看来,我有以下内容:

<h4><%= f.select :challenge_type, options_for_select(challenge_types, selected_type),
  :onchange => 'show_appropriate_challenge()' %></h4>

在我的xxx.js.coffee文件中,我有这个(我尝试了很多不同的改动,似乎没有任何区别):

$('show_appropriate_challenge') ->
   alert('Hello from your onChange handler')

当我从下拉列表中选择一个选项时,没有任何反应,并且控制台中没有消息。即使我将select标签的onChange更改为无效的东西(即...... onchange =&gt;'no_such_function()'...),我仍然没有错误,所以我怀疑我错过了一个配置项或其他挂钩项一切都在一起。

我可能需要添加哪些其他项目,或者可能需要对这些代码段进行哪些更改?

感谢您对此提供任何帮助。

1 个答案:

答案 0 :(得分:0)

请将您的观点更新为:

<h4><%= f.select :challenge_type, options_for_select(challenge_types, selected_type),
  :id => 'challenge_selector' %></h4>

这会在id标记中添加名称为challenge_selector的{​​{1}}。现在,您可以使用coffeescript将on change事件绑定到此id,如下所示:

select