我有这个数组:
array = ['08','06','05','03','123456'];
当我在文本输入中输入值时,我会检查数组中是否有数据。这似乎有效..但我发现它在07和123上匹配以及数组中的值。
$(function() {
$('#do').on('input', function() {
array = ['08','06','05','03','123456'];
do = $(this).val();
if ($.inArray(do, array) > -1) {
$(this).css('background-color', '#FFFFFF');
console.log (do + ' - ' + array + ' - not found');
} else {
$(this).css('background-color', '#FAFAFA');
console.log (do + ' - ' + array + ' - found');
}
});
});
我已经创建了 fiddle 来展示这一点。
如果在'do'
中输入的值与数组中的任何整数值匹配,我尝试做的就是更改输入的css背景。如果它不匹配,则将背景更改为白色。
数组值来自php,格式为:
['08','06','05','03','123456']
如果需要,我可以更改数组布局。
任何人都可以告诉我我做错了什么。
由于
答案 0 :(得分:2)
我的第一个猜测错了,所以我完全改变了这个答案。如果找不到值,$.inArray()
将评估为-1
。否则它返回数组中找到的值的索引
所以你的if
条件有错误。只需使用== -1
进行比较:
$(function () {
$('#do').on('input', function () {
var my_array = ['08', '06', '05', '03', '123456'];
var x = $(this).val();
if ($.inArray(x, my_array) == -1) {
$(this).css('background-color', '#f00');
$("#feedback").text(x + ' - ' + my_array + ' - not found');
} else {
$(this).css('background-color', '#0f0');
$("#feedback").text(x + ' - ' + my_array + ' - found');
}
});
});
更新了更多调试功能: