Javascript 仅允许在输入中输入一次数字

Javascript 仅允许在输入中输入一次数字,javascript,jquery,arrays,validation,input,Javascript,Jquery,Arrays,Validation,Input,有没有办法使用javascript/jquery来防止用户在输入框中两次输入相同的数字?用户可以输入任意数量的数字(一次一个),但如果用户再次尝试输入相同的数字,我需要提醒用户/采取其他操作。我已尝试创建一个数组: function history() { var numbers = []; numbers.push(document.getElementById('inputBox').value); } 然后运行: var n = document.getElementByI

有没有办法使用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子句永远不会触发。

看起来您的
numbers
变量的作用域是
history()
函数,因此正在设置的
numbers
变量实例只能由
history()
函数访问。此代码将完成您在没有全局
numbers
变量的情况下尝试执行的操作,并通过拦截和取消键事件防止输入任何重复的数字

$("#inputBox").on("keydown", function(e) {
    var numbers = $(this).val();
    var c = String.fromCharCode(e.keyCode);
    return ~numbers.indexOf(c);
});

也许是这样的?我假设您正在使用,因为您的代码中存在错误

var numbers = [];
$('#inputBox').change(function () {
    if ($.inArray($(this).val(), numbers)) {
        // Alert the user/take other action
    } else {
        // Otherwise, add it to the array of numbers
        numbers.push($(this).val());
    }
});

如果有一个按钮,用户必须点击才能添加新号码,那就更好了。否则,它将非常烦人。

谢谢您的快速回复,但仍然失败。如果在If检查之后立即运行
alert(''+names+'')
,它将为空。这需要一些小的更改-
$('#inputBox')。按键(函数(事件){If(event.keyCode==13){If($.inArray($(This.val(),numbers)>-1){
没有
-1
第一次输入数字时会触发警报。现在一切正常。感谢您的帮助。