Javascript 仅允许在输入中输入一次数字
有没有办法使用javascript/jquery来防止用户在输入框中两次输入相同的数字?用户可以输入任意数量的数字(一次一个),但如果用户再次尝试输入相同的数字,我需要提醒用户/采取其他操作。我已尝试创建一个数组: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
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
第一次输入数字时会触发警报。现在一切正常。感谢您的帮助。