2013-11-22 74 views
0

我有一个获取选择下拉列表的默认值的问题。 我有水果VAL:电梯 - 如何使用WiringUI获取选择的默认值

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与选择=“选择”选项正确呈现,但是当我尝试将其保存到数据库我获得了水果的空值。如果我将选项更改为“其他”,然后选择它返回到“苹果”,它可以节省正确的价值。 我也添加了一个println函数addLine来查看这个向量中的值是什么,如果我不改变水果选项,那么是空值,所以我想当我处理线路将它保存到数据库时,它不是问题。

你能帮我吗?

感谢 杰拉德

回答

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) 
    } 
})