在输入字段中捕获<enter>按下多次

时间:2016-06-08 16:30:22

标签: javascript jquery html

问题陈述:我已经实现了this Stack Overflow应答中描述的代码,以便在用户使用文本<input>时尝试捕获答案键。该代码用于捕获输入按下,但是在按下输入后,功能体保持运行。基本上,只要按下回车键,该功能就会无限运行。 这样做的理想行为是让用户按Enter键,然后使用名为的功能

我试图解决我的问题是什么?

以下是我原来的jQuery。

$(function(){
    $("#maininput").keyup(function (e) {
        if (e.keyCode == 13) {
            alert("Enter was Pressed while in input ")       
        }
    });
});

按下Enter键后无限运行。因此,我开始寻找更多Stack Overflow条目,并且我发现this之类的线程谈论使用return falsee.preventDefault()。我尝试实施return false并使用以下代码:

$(function(){
    $("#maininput").keyup(function (e) {
        if (e.keyCode == 13) {
            alert("")       
        }
        return false;
    });
});

然而,即使return false也没有解决它。然后,我将return false替换为e.preventDefault(),但这不起作用。可以找到一个JSFiddle here

我的代码出了什么问题,如何解决?

1 个答案:

答案 0 :(得分:1)

您发布的代码中没有任何内容会导致keyup函数重复运行,但您可能需要去除功能。

https://css-tricks.com/the-difference-between-throttling-and-debouncing/

http://benalman.com/projects/jquery-throttle-debounce-plugin/

此外,您与return falsee.preventDefault()走在了正确的轨道上。以下是两者之间差异的一个很好的解释:

https://css-tricks.com/return-false-and-prevent-default/

相关问题