Javascript 仅在表单元素外部触发jquery键事件

Javascript 仅在表单元素外部触发jquery键事件,javascript,jquery,Javascript,Jquery,是否可以仅在表单元素外部触发键事件 背景:我有一个代码,当按下右键时加载下一页。但如果有人在表单元素中使用该键,我不想触发该事件 当前代码: $(document).keydown(function(e){ if (e.keyCode == 37) { var url = $('a#left').attr("href"); if (url != '') { // require a URL window.locatio

是否可以仅在表单元素外部触发键事件

背景:我有一个代码,当按下右键时加载下一页。但如果有人在表单元素中使用该键,我不想触发该事件

当前代码:

$(document).keydown(function(e){
    if (e.keyCode == 37) { 

        var url = $('a#left').attr("href");

        if (url != '') { // require a URL
                window.location = url; // redirect
        }

    return false;
    }

    if (e.keyCode == 39) { 

        var url = $('a#right').attr("href");

        if (url != '') { // require a URL
                window.location = url; // redirect
        }

    return false;
    }
});

下面是这个概念的一个基本示例。您只需将事件处理程序添加到文档中,并检查其目标是否没有作为表单的父级

HTML

<form>
    Inside form
    <input/>
</form>
Outside form
<input />
工作POC:

这个概念可以很容易地应用到您提供的脚本中

对脚本的修改

    $(document).keyup(function(event){
        if($(event.target).parents("form").length == 0){
           alert("here");
        }
    });
$(document).keydown(function(e){
    var outsideForm = $(e.target).parents("form").length == 0;
    if (e.keyCode == 37 && outsideForm) { 

        var url = $('a#left').attr("href");

        if (url != '') { // require a URL
                window.location = url; // redirect
        }

    return false;
    }

    if (e.keyCode == 39  && outsideForm){ 

        var url = $('a#right').attr("href");

        if (url != '') { // require a URL
                window.location = url; // redirect
        }

    return false;
    }
});

下面是这个概念的一个基本示例。您只需将事件处理程序添加到文档中,并检查其目标是否没有作为表单的父级

HTML

<form>
    Inside form
    <input/>
</form>
Outside form
<input />
工作POC:

这个概念可以很容易地应用到您提供的脚本中

对脚本的修改

    $(document).keyup(function(event){
        if($(event.target).parents("form").length == 0){
           alert("here");
        }
    });
$(document).keydown(function(e){
    var outsideForm = $(e.target).parents("form").length == 0;
    if (e.keyCode == 37 && outsideForm) { 

        var url = $('a#left').attr("href");

        if (url != '') { // require a URL
                window.location = url; // redirect
        }

    return false;
    }

    if (e.keyCode == 39  && outsideForm){ 

        var url = $('a#right').attr("href");

        if (url != '') { // require a URL
                window.location = url; // redirect
        }

    return false;
    }
});
如果表单之外还有其他字段,我希望这会非常有用

如果表单之外还有其他字段,我希望这会非常有用


请查找我添加的代码。请查找我添加的代码。简短而简单。谢谢你的支持。简短明了。谢谢你的支持。