当在文本框中按下enter时,JQuery执行函数

时间:2014-11-19 21:04:37

标签: javascript jquery asp.net twitter-bootstrap

        $(document).keypress(function(e) {
            if(e.which == 13) {
                $("#submitButton").click(); 
            }
        });

这就是当我在页面的任何地方按下输入时执行我的功能,但这与我的dropdown list键盘导航相冲突。

<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>

当尝试通过dropdown list制表时,你必须使用enter来选择同时执行我的功能的项目,这是我不想要的。

我知道可以为每个textbox检查是否可以执行功能,如果在textbox有焦点的情况下按下了输入,但是我已超过20岁而宁愿避免这种情况。而且我知道我可以使用asp:panel defaultbutton但忽略了我的jquery函数并调用了代码隐藏而不是jquery函数,因为我有2 linking buttons作为一个,其中一个不能是asp:button需要asp:panel

另一个解决方案是以某种方式使dropdown list以不同方式对待,而不是作为&#34;当前页面&#34;。我正在使用bootstrap datepicker,当键盘浏览日历弹出窗口时,我可以使用enter而不调用我的函数。 如果可能的话,我希望有一个单一功能来检测是否在页面上的任何textbox上按下了输入。 干杯

1 个答案:

答案 0 :(得分:0)

尝试在下拉列表中添加一个id并将一个点击侦听器绑定到它以防止它冒泡。有点像...

$("#dropdown-list").keypress(function(e) {
            e.preventDefault();
        });