繁体   English   中英

我如何找到用户仍在输入的搜索值?

[英]How do I find the value a user is search for while he is still typing?

JavaScript的:

var array = [
    ['shoe', 1],
    ['shirts', 2]
];

$('input#item').keyup(function()
{
    var value = $(this).val();

    $('#value').html('value from array');
});

HTML:

<input type="text" name="item" id="item" />
<br />
Value: <span id="value"></span>

我想查找用户仍在键入时要搜索的项目的值。

例:

a)用户键入s ,应该输出1 ,因为它是数组中的第一个值。

b)当用户键入shi ,应该输出2 ,因为它与shirts匹配。

c)如果没有匹配,则不应输出no match

注意:如果可能,我想保留数组的结构。

$('input#item').keypress(function()
{
    var value = $(this).val();
    var result = 'no match';
    for (var i = 0; i < array.length; i++) {
        if (array[i][0].indexOf(value) != -1) {
            result = array[i][1];
            break;
        }
    }
    $('#value').html(result);
});

为什么,只需遍历数组...

var array = [
    ['shoe', 1],
    ['shirts', 2]
];

function findValue(array, value) {
    for (var i=0, ii=array.length; i<ii; i++)
        if (array[i][0].substr(0, value.length) == value)
            return array[i];

    return false;
}

$('input#item').keyup(function()
{
    var 
    value = $(this).val(),
    match = findValue(array, value);

    $('#value').html(match === false ? "no match" : match[1]);
});

没有测试过

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM