Elm-防止默认订阅

时间:2018-06-30 18:29:46

标签: javascript elm

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

上下文:我正在尝试开发一个textarea编辑器(类似于此页面中的那个,它允许您通过模式窗口插入链接和图像)。

问题::如果在任何模态窗口中的任何一个输入被突出显示时单击“ Enter”,该配方将提交。如果碰巧是onClick事件处理程序(使用onWithOptions),我将知道如何解决。但是我不知道在使用订阅时该如何解决。

1 个答案:

答案 0 :(得分:1)

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

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

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

Edit2:最后使用form属性将这些输入绑定到不存在的公式上来解决了这个问题:A.form ""