我在获取选择下拉列表的默认值时遇到问题。 我有水果val:
val fruits = List("apple", "banana", "other")
我用:
渲染一个tr<tr id={ theLine.guid }>
<td>
{
SHtml.ajaxSelect(fruits, Full(fruits(0)),
s => {
mutateLine(theLine.guid) {
l => Line(l.guid, l.name, s, l.note)
}
Noop
})
}
</td>
(...)
页面html上的正确呈现选项选择=“已选择”,但是当我尝试将其保存到数据库时,我得到空的水果值。如果我将选项更改为“其他”,然后我将其选择回“苹果”,它会保存正确的值。 我还为addLine添加了一个println函数,以查看此向量中的值是什么,如果我不更改水果选项,则存在空值,所以我认为当我处理行将其保存到DB时,它不是问题。
你可以帮我解决这个问题吗?感谢 杰拉德
答案 0 :(得分:1)
在更改选择选项之前,您不会触发调用您的功能的事件。该函数绑定到onChange
,并且仅在值更改时才会被触发。
要修复,您可以:开始使用“选择值”之类的选项。这将要求用户更改项目,但这是触发onchange
的唯一方法。
如果您不想这样做,可以添加一个按钮并将您的逻辑添加到按钮单击处理程序,该处理程序将在提交时被调用。这样的事情应该有所帮助 - 你需要将它绑定到你的输出,或者你提供的内联,或者通过CSS Selectors:
var selected = Full(fruits(0))
SHtml.ajaxSelect(fruits, selected,
s => {
selected = Full(s)
Noop
})
SHtml.ajaxSubmit("Submit", () => {
mutateLine(theLine.guid) {
l => Line(l.guid, l.name, selected, l.note)
}
})