在输入框中输入单个字母后,使用jQuery触发函数

luk*_*hek 3 javascript jquery keyup

我正在尝试制作一个简单的搜索框.如何在输入框中输入单个字母后触发功能?我使用了.keyup,但这似乎毫无用处,因为当输入变音字符时,该函数会被触发三次.

<input id="text" type="text" />
<div></div>
<script>
    $('#text').keyup(function(){
        $('div').append('TEST'+$(this).val());
    });
</script>
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,除非你输入任何变音字符:±,ś,ł,ż,ź,ć等.

我不能使用.keypress或.keydown,因为它们在输入字符之前触发一个函数.

稍后编辑:

我知道我的例子可能不够清楚,无法理解这个问题,但是......每次输入一个字母时,在我的真实代码中,都会执行一个SQLite查询.如果类型是变音字符或大写字母,则查询执行三次或两次,这会减慢整个脚本的速度.如果您在计算机Web浏览器中执行脚本,它将没有太大的区别,但移动浏览器存在明显的延迟.

Lan*_*ens 5

var i = 0;    

$('#text').keyup(function(event) {
    i++;
    if(i == 1)
    {
        $('div').append('TEST'+$(this).val());
    }
});
Run Code Online (Sandbox Code Playgroud)

这对我来说应该有效,您还可以检测到正在输入的特定键


Tin*_*ehr 5

我考虑检查字符串的值与上次更改时的值.所以按键不会运行该函数,除非它导致字符串被更改.

http://jsfiddle.net/82sTJ/1/