在没有一个表单的情况下用ENTER阻止提交

Block submit with ENTER without one form

本文关键字:ENTER 提交 情况下 有一个 表单      更新时间:2023-09-26

我有一个简单的输入提交拦截器:

$(window).keydown(function(event){
    if(event.keyCode == 13){
        event.preventDefault();
        return false;
    }
});

这就是工作。但我有一个表单(快速搜索),我想在其中输入submit,所以我如何添加"if":if(event.keyCode==13&&NOT IN$('#search'))

如果您的表单具有search 的id

$(window).keydown(function(event){
    if(event.keyCode == 13 && !$(event.target).closest('#search').length){
        event.preventDefault();
        return false;
    }
});

如果您的输入具有search:的id

$(window).keydown(function(event){
    if(event.keyCode == 13 && !$(event.target).is('#search')){
        event.preventDefault();
        return false;
    }
});

试试这个:

$(window).keydown(function(event){
if(event.target.closest('#search').length==0){
    if(event.keyCode == 13){
        event.preventDefault();
        return false;
    }
}
});

您可以使用类似的东西

$(window).keydown(function(event){
    if(event.keyCode == 13 && event.target.closest('#search').length == 0) {
        event.preventDefault();
        return false;
    }
});

如果您的搜索id是"search"

window.onkeydown=function(e){
 if(e.keyCode==13&&e.target.id!='search'){
  e.preventDefault();
 }
}

return false==e.preventDefault;e.stop传播.

你不需要返回false。

对于较旧的browsrs

window.onkeydown=function(e){
 e=e||window.event;
 if((e.keyCode||e.which)==13&&(e.target||e.srcElement).id!='search'){
  return false
 }
}

纯js