Как обработать событие, когда выбранный элемент изменяется в HTML-выделении - PullRequest
0 голосов
/ 11 января 2010

В настоящее время у меня есть два варианта выбора Ruby: один для категорий и другой для подкатегорий. Как вы можете ожидать, второй должен обновляться каждый раз, когда меняется первый.

Например, если я выбираю из первого категории «Спорт», второй выбор должен загружать все виды спорта.

Как я могу обработать это событие "изменение индекса"? Есть ли «рубиновый путь» или я должен использовать javascript?

Спасибо, Brian

1 Ответ

2 голосов
/ 11 января 2010

Вы должны использовать хотя бы немного JavaScript. В jQuery вы можете сделать это:

$(document).ready(function(){
    $('#first-select').change(function(){
          $('#second-select').load('/categories/2');
    });
});

В вашем CategoriesController ваше действие показа должно отвечать на format.js, который должен сделать подкатегории частичными:

class CategoriesController
...
def show
  @subcats = SubCategory.find_all_by_parent_category(params[:id])
  ...
  respond_to |format|
    ...
    format.js { render :partial => "subcategories", :locals => { :subcats => @subcats } }
  end
end

и ваши частичные подкатегории:

<% subcats.each do |subcat| %>
<option value="<%= subcat.value %>"><%= subcat.text %></option>
<% end %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...