Javascript 在文本框中按enter键时执行JQuery函数

Javascript 在文本框中按enter键时执行JQuery函数,javascript,jquery,asp.net,twitter-bootstrap,Javascript,Jquery,Asp.net,Twitter Bootstrap,这就是当在页面的任何地方按enter键时我必须执行的功能,但这与我的下拉列表键盘导航冲突 $(document).keypress(function(e) { if(e.which == 13) { $("#submitButton").click(); } }); 当试图通过下拉列表进行制表时,您必须使用enter来选择项,它同时执行我的函数,这是我不想要的 我知道,如果在文本框

这就是当在页面的任何地方按enter键时我必须执行的功能,但这与我的下拉列表键盘导航冲突

        $(document).keypress(function(e) {
            if(e.which == 13) {
                $("#submitButton").click(); 
            }
        });
当试图通过下拉列表进行制表时,您必须使用enter来选择项,它同时执行我的函数,这是我不想要的

我知道,如果在文本框有焦点的情况下按下enter键,则可以对每个文本框执行功能检查,但我有超过20个文本框,我宁愿避免这样做。我知道我可以使用asp:panel defaultbutton,但这会忽略我的jquery函数,调用codebehind而不是jquery函数,因为我有两个链接按钮作为一个,其中一个不能是asp:panel所需的asp:button

另一个解决方案是以某种方式使下拉列表被区别对待,而不是作为当前页面。我正在使用引导日期选择器,当键盘在日历弹出窗口中导航时,我可以使用enter而不调用我的函数。 如果可能的话,我希望有一个单一的功能,检测是否输入了任何文本框上的一页。
干杯

尝试向下拉div添加一个id,并将一个click侦听器绑定到它,以防止它冒泡。类似于

<div class="form-group" id="contractGroup">
                <label for="inputContract" class="col-sm-5 control-label">Contract Type <b>*</b></label>
                <div class="col-sm-7">
                    <div class="input-group" id="contractPicker">
                        <div class="input-group-btn">
                            <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><span class="caret"></span></button>
                            <ul class="dropdown-menu" role="menu">
                                <li><a href="#">Full-time</a></li>
                                <li><a href="#">Part-time</a></li>
                            </ul>
                        </div>
                        <asp:TextBox runat="server" type="text" class="form-control" ID="inputContract" placeholder="Full time, Part time"></asp:TextBox>
                    </div>
                </div>
            </div>

只需将它绑定到所有文本框。照现在的情况,即使你不关注元素,点击回车键,你也要提交formUse$'input[type=text]'而不是$document?@user3557327,这就是我不了解javascript和JQuery的原因,只是在另一个函数中使用了$'input[type=text]',即使在这一个函数中使用它,cheers也没有什么吸引力。如果你将此作为答案发布,我会接受。这个问题与Bootstrap有什么特别的关系?@MattD不多,但这是我想象的解决方案之一,改变页面上下拉列表的处理方式,为此我可能需要在Bootstrap方面做些更改。干杯,已经与@user3557327建议一起使用了,但这似乎有一天也会有用。
$("#dropdown-list").keypress(function(e) {
            e.preventDefault();
        });