2013-11-22 54 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) 
    } 
})