2009-09-10 5 views
0

Мне нужно создать что-то вроде того, что делает gmail для своих ярлыков ... У него есть кнопка, которая при нажатии появляется всплывающий список, отображающий метки с флажками для выбора.gmail-like popup checkbox list в rails?

Хотелось бы узнать о подходах к всплывающему окну и о том, как разместить его прямо под кнопкой.

Кроме того, я хотел бы иметь возможность наблюдать за флажком, выбирать/отменять события и принимать меры, поэтому советы по этой части также будут оценены ... в противном случае, я думаю, мне нужно будет поставить форму с кнопку отправки и обрабатывать новые параметры, когда пользователь отправляет.

+0

О, я должен был сказать, что я использую прототип – lunaclaire

ответ

0

Если список флажков статичен, вы можете сделать все это непосредственно в визуализированном действии. В противном случае возможны два подхода:

  • Использование button_to_remote получить действие, отображающее всплывающие окна, а также подают необходимые JS;

  • Используйте button_to_function для извлечения некоторого XML или json (по вашему выбору) из действия, с необходимыми метками и значениями для флажков, а затем визуализируйте всплывающее окно.

Первый может быть проще сделать, если вы не знакомы со всем этим, в то время как второй путь более эффективен, так как только данные передаются через асинхронный вызов, а не разметка, ни JavaScript.

О вашем последнем вопросе, если (не) проверка флажка должен привести к стороне сервера действий, prototype_helper обеспечивает удобную observe_field функции, которая будет использоваться как это:

<%= check_box "foo", "bar" %> 
<%= observe_field "foo_bar", :url => {:action => :some_action, :controller => :some_controller} %> 

Если (ООН) проверки можно управлять на стороне клиента, вы можете просто использовать:

<%= check_box "foo", "bar", { :onclick => "someFunctionToDoWhatINeed(someArg);"} %> 

всего две ноты:

  • JavascriptHelper и PrototypeHelper именно это, помощники: они позволяют вам делать некоторые вещи с очень простым синтаксисом и отлично, если они помогают; когда их больше нет, не стесняйтесь бросать их и идти на простой javascript.

  • Я использовал prototype какое-то время, но потом я влюбился в jquery; вы можете взглянуть на него.

Пожалуйста, отредактируйте ваш вопрос или ответьте на мой вопрос, если я не понял ваш вопрос и/или был бесполезным.