繁体   English   中英

箭头键在窗体上不起作用

[英]Arrow Keys Not Working on Form

我们在特定站点上使用Ninja Forms,并且每当在其中键入内容时,箭头键都将失效。 我进行了一项研究,发现向该社区( 此处 )提供了类似的东西。

因此,我确实检查了站点的JS文件,并发现了所提及的内容。 我注意到这组代码,我认为这是禁用箭头键的原因:

    // disable/enable scroll (mousewheel and keys) from https://stackoverflow.com/a/4770179                  
    // left: 37, up: 38, right: 39, down: 40,
    // spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36
    var keys = [37, 38, 39, 40], wheelIter = 0;

    function preventDefault(e) {
        e = e || window.event;
        if (e.preventDefault)
        e.preventDefault();
        e.returnValue = false;  
    }

    function keydown(e) {
        for (var i = keys.length; i--;) {
            if (e.keyCode === keys[i]) {
                preventDefault(e);
                return;
            }
        }
    }

但是我不确定下一步该怎么做,因为我最初提到的资源没有说明分步过程。 我应该删除整个代码集吗? 我绝对可以进行测试,但是我想我可能会被认为是在我可能实际上没有注意到的其他更改的情况下才起作用。

将感谢社区的指导。 谢谢。

我可能应该提供到实际表格的链接。 给你

您可以使用jQuery检查目标是否为表单元素(因为您正在使用它),如果不是,则不调用阻止默认行为的讨厌代码。

function keydown(e) {
    // Don't block arrow keys on form elements
    if( $(e.target).is(':input') ) {
        return;
    }
    for (var i = keys.length; i--;) {
        if (e.keyCode === keys[i]) {
            preventDefault(e);
            return;
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM