2017-04-19 30 views
1

在Html.Events onblur事件不允許與它傳遞的任何值,因爲據我所知。有一種方法,使之包括輸入值(例如,見這個問題:Elm Html.Events - Pass input value to onBlur message),但我怎麼也使它包括另一個值?榆樹 - 從的onblur動態創建輸入

我使用的情況是,我產生從列表我在我的模型列表(UL),並且這個名單可以是任意大小,所以我不能對每個輸入特定的消息。相反,我想這樣的事情每個項目:

  input 
       [ value someValue 
       , onBlur UpdateItem uniqueId 
       ] 
       [] 

這樣我可以更新基於我從的onblur消息得到了ID在我的模型的具體項目。

我該怎麼做?

更新: 要澄清我的問題:我還需要從輸入端的值,所以我需要在兩個通過我的ID 得到targetValue(如我上面鏈接的問題)。

(對於未來的用戶:我用榆樹0.18

回答

2

我的建議是使用的onChange,你需要定義自己,並在同一時間,模糊事件被觸發。

onChange : (String -> msg) -> Attribute msg 
onChange msgCreator = 
    Html.Events.on "change" (Json.map msgCreator Html.Events.targetValue) 

然後定義一個消息,搭載全新的價值和它的id

type Msg 
    = UpdateItem Id String 

並確保使用defaultValue屬性(而不是value

input 
    [ defaultValue someValue 
    , onChange (UpdateItem uniqueId) ] 
    [] 
+1

表現的很出色,謝謝您! –