Где разместить пользовательский код JavaScript / Prototype для формы ActiveScaffold? - PullRequest
0 голосов
/ 05 декабря 2009

У меня есть выпадающий список в форме ActiveScaffold. Я пытаюсь скрыть некоторые поля формы, если выбрано определенное значение.

[похожий вопрос] [1] был опубликован в ActiveScaffold Google Group, и предоставленный код Prototype выглядит для того, чтобы делать то, что мне нужно, однако я не знаю, где мне нужно это добавить.

-

Я попытался взять копию -horizont-subform-header.html.erb у продавца / plugins / 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 голосов
/ 06 декабря 2009

Общим местом для добавления JavaScript является application.js, найденный в public / javascripts. Я сам jQuery, но я уверен, что вы можете подключиться к событию onchange в application.js с прототипом. Быстрый поиск выглядит так: Event.observe должен помочь.

...