按Enter键不会触发按钮单击

时间:2013-12-26 22:13:27

标签: javascript jquery

我希望wen用户按下输入按钮单击被触发,但我有问题,而是页面刷新,我尝试了几个选项,但没有任何帮助,这是我的代码:

$("#phoneNumber").keypress(function (event) {
            if (event.keyCode == 13) {    
            event.preventDefault();   
            $("#request").click();

            }
        });

<div class="span12" id="numberDiv">
                <input id="phoneNumber" type="text" class="input-large" placeholder="Type a number" required="required" value="+385" />
                <button class="btn btn-primary" type="button" id="request">Send</button>
                <button class="btn btn-danger " type="button" id="terminate">Terminate</button>
            </div>

修改 我已经尝试了所有的解决方案,但没有运气:/

只有让人想到这段代码可能会产生问题(但不确定原因)

 window.onload = function() {
        $(function() {
            $("#phoneNumber").on("focus", function() {
                if (this.setSelectionRange) {
                    var len = this.value.length * 2;
                    this.setSelectionRange(len, len);
                } else {
                    this.value = this.value;
                }
                this.scrollTop = 999999;
            }).focus();
        });
    };

2 个答案:

答案 0 :(得分:2)

当按下 Enter 键时,您可以使用以下代码在click上启动#request事件:

$("#phoneNumber").keypress(function(event) {
    if (event.which == 13) {
        event.preventDefault();
        $("#request").click();
    }
});

答案 1 :(得分:1)

我可能会建议尝试在click()事件和keypress事件上调用的整体函数。

$("#phoneNumber").on('keyup', function (event) {
        if (event.keyCode == 13) {    
            event.preventDefault();  
            doSomething();
        }
});

$("#request").click(function() {
            doSomething();
});

function doSomething() {
    //do something
}