2017-04-19 18 views
1

Html.EventsのonBlurイベントでは、わかっている限り、値を渡すことはできません。入力の値を含める方法があります(たとえば、この質問を参照:Elm Html.Events - Pass input value to onBlur message)が、別の値を含めることもできますか?動的に作成されたElm-onBlur

私のモデルで使用しているリストからリスト(ul)を生成し、このリストは任意のサイズにすることができるので、入力ごとに特定のメッセージを表示することはできません。私はonBlurイベントメッセージから得たIDに基づいて、私のモデルで特定のアイテムを更新でき

  input 
       [ value someValue 
       , onBlur UpdateItem uniqueId 
       ] 
       [] 

その方法:代わりに、私は、各項目ごとに、このような何かをしたいと思います。

どうすればいいですか?

更新: 私の質問を明確にする:私はまた、入力から値を必要とするので、私は私のID を渡し、(私は上記のリンク先の質問のように)targetValueを取得するには、両方必要があります。

(将来の訪問者のために:私はエルム0.18を使用)

答えて

2

私の提案は、あなたが自分自身を定義する必要がある、のonChangeを使用することであろう、とblurイベントと同時にトリガされます。

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

、新しい価値とそのID

type Msg 
    = UpdateItem Id String 

を運ぶためにメッセージを定義し、(むしろvalueより)defaultValue属性素晴らしく勤務

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

を使用してください、ありがとう君は! –

関連する問題