我需要构建类似gmail为它的标签做的事情...它有一个按钮,当按下时会弹出一个滚动列表,显示带有复选框的标签供选择。
我想听听有关弹出窗口以及如何将其放在按钮下方的方法。
此外,我希望能够观察复选框选择/取消选择事件并采取行动,因此对该部分的建议也将受到赞赏...否则,我想我将不得不放置一个表格提交按钮并在用户提交时处理新选择。
答案 0 :(得分: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
;你可能想看看它。
如果我不理解你的问题和/或没有帮助,请编辑你的问题或评论我的答案。