Elm-如何使用HTML事件?

Elm-如何使用HTML事件?,elm,Elm,Elm似乎没有使用标准的Elm HTML事件,我不知道如何使用它们。例如: 这在编译器中失败,因为现在我在第3行返回typeHtml(String->Msg),但在第2行返回typeHtml(Msg) 为什么这两个事件不兼容?有没有办法同时使用两者?此外,文档没有明确说明像我这样的人如何使用onBluronBlur具有与onInput不同的类型签名 onInput:(字符串->消息)->属性消息 onBlur:msg->Attribute msg 这意味着用于onInput的Msg必须采用单个

Elm似乎没有使用标准的Elm HTML事件,我不知道如何使用它们。例如:

这在编译器中失败,因为现在我在第3行返回type
Html(String->Msg)
,但在第2行返回type
Html(Msg)


为什么这两个事件不兼容?有没有办法同时使用两者?此外,文档没有明确说明像我这样的人如何使用
onBlur

onBlur
具有与
onInput
不同的类型签名

onInput:(字符串->消息)->属性消息
onBlur:msg->Attribute msg
这意味着用于
onInput
Msg
必须采用单个字符串参数。同样,在
onBlur
中使用的
Msg
也不能接受参数。如果将
MsgA
MsgB
重新定义为以下内容,它将编译:

type Msg
=MsgA字符串
|MsgB
编辑

如果希望模糊处理程序能够接受目标值,可以按如下方式滚动自己的模糊处理程序:

import Html.Events exposing(on,targetValue)
导入Json。解码为Json
onBlurWithTargetValue:(字符串->消息)->属性消息
onBlurWithTargetValue标记器=
关于“模糊”(Json.map tagger targetValue)

谢谢@ChadGilbert。这更清楚一点。我仍然在想我需要
onBlur
来获取一个参数,这样我就可以在
update
MsgB
分支中获取该输入的值。你能举一个例子说明
onBlur
onInput
的用法吗?我用一个例子编辑了我的答案,其中“blur”事件可以给你当前值。哇。埃尔姆继续告诉我我一点也不懂。非常感谢。
view model =
  div []
    [ div []
      input [ type_ "text", onInput MsgA ] []
    , input [ type_ "text", onBlur MsgB ] []
    ]