不可能在输入中使用core-a11 -keys



Dart, Polymer, Dartium.

在一个页面中,我有一些div元素,里面有core-a11y-keys,键是"上下左右"。它工作得很完美,一些动作是在按下键后发生的。

我还在页面上有输入字段。问题是我不能使用箭头键,因为core-a11y-keys

问题是:如何避免破坏行为?

HTML:

<body>
    <div id="widgetContainer">
        <core-a11y-keys target="{{body}}" keys="up down left right"
                        on-keys-pressed="{{widgetContainer_on_move_keys}}">
        </core-a11y-keys>
    </div>
    <input id="txtInput">
</body>

确保core-a11y-keystarget属性实际上存在并针对div,否则它将适用于包括input在内的整个页面。关于如何做到这一点的更多细节,请参阅这里:https://groups.google.com/a/dartlang.org/forum/m/#!主题/web/k8Wzj6KCfgM

如果你的inputdiv的孩子,你的core-a11y-keys是针对的,它会做你指示它在div做的任何地方:拦截击键。在这种情况下,您需要在input中处理onKeyPress事件,如<input on-keypress="{{handleInputKeyStrokes}}">:

handleInputKeyStrokes(Event e) {
  // You'll need one or both of these; not sure which.
  e.preventDefault();
  e.stopPropagation();
}

我还没有尝试过,它可能是你需要onKeyUponKeyDown代替,如https://stackoverflow.com/a/13746419.

最新更新