jquery - 类型2数字后的fire keyup事件

时间:2013-02-25 01:32:45

标签: javascript jquery html

我已经实现了以下代码:(这里的示例http://jsfiddle.net/MvWV7/3/

  $(".activity_order").keyup(function() {
    var $t = $(this)
    $.map($(".activity_order").not("#"+$t.attr("id")), function(t) {
      if(t.value === $t.val() && $t.val() != ""){
        console.log("number already taken")
        $t.val("")
      }
    })
  })

一切都按预期工作,直到输入超过10,然后keyup事件不允许我使用2位数字。

我正在考虑的解决方案是添加超时,但我不确定这是否是最佳方式。也许有一些我错过的东西可以在没有超时的情况下实现这一点。

提前致谢

1 个答案:

答案 0 :(得分:2)

您可以使用setTimeout功能。

var t = '';
$(".activity_order").keyup(function () {
    var self = this;
    clearTimeout(t);
    t = setTimeout(function () {
        $(".activity_order").not(self).each(function (t) {
            if (this.value === self.value && self.value != "") {
                // alert("El número ya ha sido tomado")
                self.value = ""
            }
        })
    }, 280);
});

http://jsfiddle.net/zhdez/