如何在elm中使用preventDefault?在键盘事件上说:
url: http://example.com
description: I'm a description
如果我们不想要默认行为?
Html.Events有方法,但我不明白如何在实践中使用它。
答案 0 :(得分:8)
了解如何使用Html.Events.on
,然后就会变得明显。
myInput =
input
[ on "keydown" (Json.map KeyInput keyCode)]
[]
...变为
myInputWithOptions =
input
[ onWithOptions "keydown" options (Json.map KeyInput keyCode)]
[]
options =
{ stopPropagation = True
, preventDefault = True
}
(这里,消息构造函数KeyInput
定义为:type Msg = KeyInput Int
)
答案 1 :(得分:6)
如果您的具体情况是仅在Enter上而不是在任何其他键上防止默认行为,那么这在Elm中是不可能的 - 您必须求助于Ports和JS。
答案 2 :(得分:1)
您现在可以使用库elm-community/html-extra,它为您提供onClickPreventDefault
和onClickStopPropagation
功能。