浏览HTML输入网格并选择控件

时间:2019-03-20 11:05:39

标签: html dom-events

我想创建一个可导航的文本输入网格并选择控件。 “可导航”是指用户应该能够使用4个箭头键选择该方向上的下一个控件。

这意味着应该抑制箭头键的正常行为(正常情况下,向左和向右箭头会在输入控件中移动光标,并向上/向下选择select中的下一个选项。

仅当用户按下“ e”(编辑)时,控件才应该可编辑

我试图通过在容器div上有一个事件处理程序来移动焦点来做到这一点,但是每当我使用箭头键(在编辑模式下)时,容器div的事件处理程序也会侦听并更改焦点

在编辑模式下停止传播或阻止Default时,我应该添加一个eventListener吗?

示例HTML:

<html>

<body>
    <table>
        <tr>
            <td><input type="text" value="ABC"></td>
            <td>
                <select>
                    <option>A</option>
                    <option>B</option>
                    <option>C</option>
                </select>
            </td>
            <td><input type="text" value="ABC"></td>
            <td>
                <select>
                    <option>A</option>
                    <option>B</option>
                    <option>C</option>
                </select>
            </td>
            <td><input type="text" value="ABC"></td>
            <td>
                <select>
                    <option>A</option>
                    <option>B</option>
                    <option>C</option>
                </select>
            </td>
        </tr>
        <tr>
            <td><input type="text" value="ABC"></td>
            <td>
                <select>
                    <option>A</option>
                    <option>B</option>
                    <option>C</option>
                </select>
            </td>
            <td><input type="text" value="ABC"></td>
            <td>
                <select>
                    <option>A</option>
                    <option>B</option>
                    <option>C</option>
                </select>
            </td>
            <td><input type="text" value="ABC"></td>
            <td>
                <select>
                    <option>A</option>
                    <option>B</option>
                    <option>C</option>
                </select>
            </td>
        </tr>
        <tr>
            <td><input type="text" value="ABC"></td>
            <td>
                <select>
                    <option>A</option>
                    <option>B</option>
                    <option>C</option>
                </select>
            </td>
            <td><input type="text" value="ABC"></td>
            <td>
                <select>
                    <option>A</option>
                    <option>B</option>
                    <option>C</option>
                </select>
            </td>
            <td><input type="text" value="ABC"></td>
            <td>
                <select>
                    <option>A</option>
                    <option>B</option>
                    <option>C</option>
                </select>
            </td>
        </tr>
        <tr>
            <td><input type="text" value="ABC"></td>
            <td>
                <select>
                    <option>A</option>
                    <option>B</option>
                    <option>C</option>
                </select>
            </td>
            <td><input type="text" value="ABC"></td>
            <td>
                <select>
                    <option>A</option>
                    <option>B</option>
                    <option>C</option>
                </select>
            </td>
            <td><input type="text" value="ABC"></td>
            <td>
                <select>
                    <option>A</option>
                    <option>B</option>
                    <option>C</option>
                </select>
            </td>
        </tr>

    </table>
</body>

</html

0 个答案:

没有答案