我正在使用 erlang 氮气 web 框架来开发应用程序。
我一定遗漏了一些非常简单的东西,但我不知道如何检索#dropbox 元素所做的选择。回发消息似乎没有通过它。它可能需要使用 wf:wire/3 功能吗?
我还没有看到任何证明这一点的文档或示例。我能找到的唯一示例将仅显示回发值,该值不提供有关选择了哪个选项的任何信息。
你需要:
这取决于您如何使用下拉菜单。如果您以一种宁静的“传统形式”非 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_fruit
event(do_fruit)
wf:q(fruit)
fruit