Elm - 防止默认订阅

Elm - prevent default with subscriptions

subscriptions : Model -> Sub Action
subscriptions model =
  let
    modalKeyUp m n = case n of
      13 -> Modal m Accept
      27 -> Modal m Close
      _  -> Modal m NoModalAction
    modalSub = case model.showModal of
      NoModal -> Sub.none
      m -> Keyboard.ups (modalKeyUp m)
  in
    modalSub

上下文: 我正在尝试开发一个文本区域编辑器(就像本页中允许您通过模态 window 插入链接和图像的编辑器)。

问题: 如果我在任何模式 windows 内的输入之一获得焦点时单击 Enter,则处方集将提交。如果这恰好是一个 onClick 事件处理程序(使用 onWithOptions),我会知道如何解决它。但是在使用订阅的时候不知道怎么解决

E.onWithOptions
    "keydown"
    {stopPropagation = True, preventDefault = True}
    (succeed NoOp)

这可以防止在添加到输入时进行隐式表单提交(必须是 "keydown",因为那是浏览器执行隐式提交的时候)

Edit1:还可以防止在输入中写入任何内容。天啊

Edit2:最终使用 form 属性将这些输入绑定到一个不存在的处方集中解决了这个问题:A.form ""