有没有办法使用javascript / jquery来阻止用户在输入框中输入两次相同的数字?用户可以输入任意数量的数字(一次一个),但如果他们尝试再次输入相同的数字,我需要提醒用户/采取其他操作。我试过创建一个数组:
function history() {
var numbers = [];
numbers.push(document.getElementById('inputBox').value);
}
然后运行:
var n = document.getElementById('inputBox').value;
if ($.inArray(n, numbers)> -1) {
// alert, do something
}
但是新数组('numbers')永远不会被用户输入填充,所以if子句永远不会触发。
答案 0 :(得分:1)
看起来numbers
变量的范围限定为history()
函数,因此numbers
函数只能访问正在设置的history()
变量。此代码将完成您在没有全局numbers
变量的情况下尝试执行的操作,并通过拦截和取消键事件来防止输入任何重复的数字。
$("#inputBox").on("keydown", function(e) {
var numbers = $(this).val();
var c = String.fromCharCode(e.keyCode);
return ~numbers.indexOf(c);
});
答案 1 :(得分:1)