在哪里为ActiveScaffold表单放置自定义JavaScript / Prototype代码?

时间:2009-12-05 18:10:26

标签: javascript ruby-on-rails prototypejs activescaffold

我在ActiveScaffold的表单上有一个Select下拉列表。如果选择了特定值,我试图隐藏表单上的一些字段。

[类似问题] [1]发布在ActiveScaffold Google Group上,提供的Prototype代码看起来像我需要的那样,但我不知道我需要在哪里添加它。

-

我尝试从供应商/插件/获取-horizo​​ntal-subform-header.html.erb的副本 active_scaffold / frontends / default / views,将其放在我的控制器的views文件夹中,然后将我的脚本添加到其中:

<script type="text/javascript">
  document.observe('dom:loaded', function() {  //do it once everything's loaded
    //grab all the product-input classes and call 'observe' on them :
    $$('.product-input').invoke('observe', 'change', function(e) {
      this.up('td').next('td').down('input').hide();
    });
  });
</script>

......但这似乎不能正常工作。如果我使用URL直接转到表单(即http://localhost:3000/sales/20/edit?_method=get),它就有效。但是,当我使用主列表视图(即http://localhost:3000/sales/)测试它并通过Ajax打开表单时,它不起作用。看看HTML源代码就不会出现了。

1 个答案:

答案 0 :(得分:0)

添加JavaScript的常见位置是public / javascripts中的application.js。我自己就是一个jQuery人,但是我确信你可以使用prototype来连接application.js中的onchange事件。快速搜索看起来Event.observe应该可以解决问题。