Ruby on Rails: мне нужно вызвать поле наблюдателя, когда я программно изменяю значение выбора, как я могу это сделать? - PullRequest
0 голосов
/ 02 февраля 2011

Эта часть работает:

<%= observe_field "dbe_filter", :url => {:action => :filter_action, :only_path => :false },
                  :frequency => 0.5,
                    :with => "'value='+encodeURIComponent(value)"%>

Мой JavaScript: эта часть работает

<script type="text/javascript">
  $j("#dbe_filter").change(function(){
    $stored_filter = $j(this).val();
  });
  $j("#dbe_filter").val($stored_filter);
  // what I want is something right here that will invoke the above 
  //   observe_field helper. 
  // Is there a way with jQuery (i'm using noConflict) to invoke a .change
  //   action?

  // current, non-working solution (node that the alert pops up):
   alert($stored_filter + " " + $j("#dbe_filter").val());
    $j("#dbe_filter").trigger('change');
  // assuming a solution works, I should see a proper XHR request in the webkit inspector.

</script>

Подробности происходящего: у меня есть другой выпадающий список выбора, который повторно отображает часть страницы, и после повторного рендеринга запускается весь новый javascript (следовательно, почему мой тест предупреждающих сообщений работает), но Я не понимаю, почему .trigger нет. Мне нужно запустить изменение, чтобы другая часть моего кода была запущена для рисования графика.

Я удивлен, что изменение значения выбора с помощью javascript не отключает триггер «изменения»

.Триггер работает. Просто должен быть помещен после помощника наблюдающего поля. • Этот вопрос решен

1 Ответ

0 голосов
/ 02 февраля 2011

Вы можете использовать триггер .

$j("#dbe_filter").trigger('change');

Я бы предложил использовать этот код для проверки работоспособности:


<select id='dbe_filter'>
  <option value='NEW'>NEW</option>
  <option value='UPDATED'>UPDATED</option>
</select>

<script type="text/javascript">
  $("#dbe_filter").change(function(){
    $(this).val("UPDATED");
  });

  $("#dbe_filter").trigger('change');

</script>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...