在氮气框架中检索#dropdown选择

时间:2013-02-02 04:36:13

标签: erlang postback nitrogen

我正在使用erlang氮气网络框架来开发应用程序。

我必须遗漏一些非常简单的东西,但我无法弄清楚如何检索#dropbox元素所做的选择。它似乎没有被回发消息传递。是否可能需要使用wf:wire / 3功能?

我没有看到任何证明这一点的文档或示例。我能找到的唯一示例只显示回发值,该值不会提供有关选择了哪个选项的任何信息。

2 个答案:

答案 0 :(得分:1)

你需要:

  • 将html_name添加到保管箱
  • 添加代码以提交表单
  • 然后在被调用的页面中(在提交操作中定义),您可以使用wf:m(dropbox_name)访问该值。

http://nitrogenproject.com/demos/restful

处有完整的示例

答案 1 :(得分:1)

这取决于您使用下拉列表的方式。如果你以一种宁静的“传统形式”非痴呆的方式使用它,那么Pascal提到的宁静元素就是你要走的路。

但是,如果您使用氮气的回发功能使用它们,您只需要通过更标准的氮气ID来定义它们。

body() ->
   [
       #dropdown{id=fruit, options=[
            #option{text="Apple"},
            #option{text="Banana"},
            #option{text="Orange"}
       ]},
       #button{text="Submit",postback=do_fruit}
   ].

event(do_fruit) ->
   SelectedFruit = wf:q(fruit),
   wf:wire(#alert{text="Selected Fruit was " ++ SelectedFruit}).

注意,下拉列表的ID为fruit#button使用值do_fruit启动回发,该值在event(do_fruit)函数中匹配,wf:q(fruit)检索ID为fruit的提交值。