我已经实现了以下代码:(这里的示例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位数字。
我正在考虑的解决方案是添加超时,但我不确定这是否是最佳方式。也许有一些我错过的东西可以在没有超时的情况下实现这一点。
提前致谢
答案 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);
});