Jquery - 根据数组结果更改输入背景css

时间:2014-09-29 16:14:55

标签: php jquery css arrays

我有这个数组:

    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']

如果需要,我可以更改数组布局。

任何人都可以告诉我我做错了什么。

由于

1 个答案:

答案 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');
        }
    });
});

更新了更多调试功能:

http://jsfiddle.net/4qtz5xnr/3/