我如何在elm中使用preventDefault?在键盘事件上说:
keyDown keyCode model =
case keyCode of
13 -> -- Enter key
model
Run Code Online (Sandbox Code Playgroud)
如果我们不想要默认行为?
Html.Events有它的方法,但我不明白如何在实践中使用它.
学习如何使用Html.Events.on,然后它变得明显.
myInput =
input
[ on "keydown" (Json.map KeyInput keyCode)]
[]
Run Code Online (Sandbox Code Playgroud)
成为...
myInputWithOptions =
input
[ onWithOptions "keydown" options (Json.map KeyInput keyCode)]
[]
options =
{ stopPropagation = True
, preventDefault = True
}
Run Code Online (Sandbox Code Playgroud)
(在这里,消息的构造KeyInput
被定义为:type Msg = KeyInput Int)
@Tosh已经展示了如何在他的答案中阻止事件传播并防止默认行为.
如果您的具体情况是仅在Enter上而不是在任何其他键上防止默认行为,那么目前在Elm中这是不可能的 - 您必须求助于Ports和JS.
| 归档时间: |
|
| 查看次数: |
1265 次 |
| 最近记录: |