Как использовать значение HTML-элемента во встроенном коде Ruby - PullRequest
0 голосов
/ 27 марта 2012

У меня есть следующий код:

<% @groups.each do |group| %>
<tr>
   <td id="groupid"><%= group.id %></td>
   <td><a href="#dialog" name="modal"><%= group.title %></a></td>
</tr>
<% end %> 

<div id="boxes">
   <div id="dialog" class="window">
       <strong><%= @groups.find(3).title %></strong> |  
       <a href="#"class="close"/>Close it</a>
   </div>
</div>

Когда я нажимаю на ссылку <%= group.title %> в браузере, я хочу получить значение, хранящееся в <td id="groupid">, и передать его в <%= @group.find(3).title %>, где3 - это ... поэтому вместо 3 у меня будет значение, хранящееся в <td id="groupid">

Как мне этого добиться?

1 Ответ

1 голос
/ 27 марта 2012

Вы не можете напрямую передать значение, полученное из javascript (через событие click), в код Ruby, потому что, когда код javascript запущен, Ruby уже завершил свою работу и передал содержимое html / js в браузер , Браузер не может вызвать функцию Ruby, он может только сделать новый запрос к скрипту Ruby на сервере (например, через ajax).

Теперь я снова посмотрел на ваш код, и, похоже, у вас уже есть все заголовки в HTML, так что вы можете попробовать это:

<script type="text/javascript">
$(document).ready(function(){
    $('td a').on('click', function(){
        var title = $(this).html();
        $('#dialog strong').html(title);
    });
});
</script>

<table>
<% @groups.each do |group| %>
  <tr>
      <!-- id changed to class below; you can't have the same id multiple times -->
      <td class="groupid"><%= group.id %></td>
      <td><a href="#dialog" name="modal"><%= group.title %></a></td>
  </tr>
<% end %> 
</table>
<div id="boxes">
    <div id="dialog" class="window">
        <strong></strong> |  <a href="#"class="close"/>Close it</a>
    </div>
</div>

Примечание. Для работы этого примера необходим jQuery.

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