2

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

我一定遗漏了一些非常简单的东西,但我不知道如何检索#dropbox 元素所做的选择。回发消息似乎没有通过它。它可能需要使用 wf:wire/3 功能吗?

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

4

2 回答 2

1

你需要:

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

在http://nitrogenproject.com/demos/restful有一个完整的例子

于 2013-02-02T12:48:48.513 回答
1

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

但是,如果您使用 Nitrogen 的回发功能使用它们,您希望通过更标准的 Nitrogen 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的 value 启动回发,并使用 id 检索提交的值。do_fruitevent(do_fruit)wf:q(fruit)fruit

于 2013-02-03T06:14:10.827 回答