Javascript 如何防止在非表单输入字段中按enter键时发送表单?(DNN)

Javascript 如何防止在非表单输入字段中按enter键时发送表单?(DNN),javascript,jquery,dotnetnuke-5,Javascript,Jquery,Dotnetnuke 5,在一个页面上,我有一个谷歌搜索字段和一个单独的登录表单。为了使搜索字段与enter一起工作,我包含了以下脚本: $('#searchBox').keydown(function (event) { if (event.keyCode == 13) { document.location.href = "someTargetPage.html"; } }); 唯一的问题是,在这种情况下,表单将被发送,因为搜索字段包含在表单中,由于dotnetnuke的体系结构,我

在一个页面上,我有一个谷歌搜索字段和一个单独的登录表单。为了使搜索字段与enter一起工作,我包含了以下脚本:

$('#searchBox').keydown(function (event) {
    if (event.keyCode == 13) {
        document.location.href = "someTargetPage.html";
    }
});
唯一的问题是,在这种情况下,表单将被发送,因为搜索字段包含在表单中,由于dotnetnuke的体系结构,我无法更改该字段。我试着像这样防止这种情况:

$('form').delegate('input:submit', 'click',
    function () {
        return false;
});
现在搜索字段可以很好地与enter配合使用,但是表单中的submit按钮不起作用!有没有一种方法可以检查触发器来自何处并允许或拒绝它


Thx适用于任何TIPP

删除停止输入按钮工作的代码(您的学员在
input:submit
)。您只需使
#searchBox
不将事件传播到表单。搜索框处理程序需要通过返回false来取消事件:

$('#searchBox').keydown(function (event) {
    if (event.keyCode == 13) {
        document.location.href = "someTargetPage.html";
        return false;
    }
});

如果确实要完全禁用表单,只需在表单的onsubmit事件中返回false即可:

$("#searchform").live("onsubmit", function(){ return false; });