输入错误的keyup事件()

时间:2011-05-03 12:52:10

标签: javascript jquery event-handling

在捕获keyup envent的脚本中,我得到输入feild的错误值。

 $("#country-name").keyup(function () {

    if ($(this).val().length > 1 ) {
        console.log($(this).val());
    }
 });

在输入文本中如果我输入 b r 然后我选择这两个字母并快速输入 g r 我有一个日志br,但有2个日志gr

如何避免$(this).val()更新太快?

由于

2 个答案:

答案 0 :(得分:2)

最简单的方法是引入延迟来解释打字的人。

var t;
$("#country-name").keyup(function() {
    var value = $(this).val();
    clearTimeout(t);
    t = setTimeout(function() {
      if (value.length > 1 ) {
        console.log(value);
      }
    }, 500);
});

Example on jsfiddle

答案 1 :(得分:0)

将其保存在类似的局部变量中:

$("#country-name").keyup(function () {
    var value = $(this).val();
    if (value.length > 1 ) {
        console.log(value);
    }
});