jQuery UI自动完成如何在现有设置中实现必须匹配?

时间:2011-06-30 10:39:08

标签: jquery-ui jquery-ui-plugins

我有以下代码,我很好奇如何强制输入匹配自动完成的内容:

$("#foo").autocomplete({
    source: function( request, response ) {
        $.ajax({
            url: "index.pl",
            dataType: "json",
            data: {
                type: 'foo',
                term: request.term
            },
            success: function( data ) {
                response( $.map( data.items, function( item ) {
                    return {
                        value: item.id
                    }
                }));
            }
        });
    },
    minLength: 1
});

1 个答案:

答案 0 :(得分:0)

为了任何在2013年偶然遇到这个问题的人的利益回答这个问题(是的吧!)

$("#my_input").autocomplete({
    source: '/get_data/',
    change: function(event, ui) {
        var source = $(this).val();
            var temp = $(".ui-autocomplete li").map(function () { return $(this).text()}).get();
        var found = $.inArray(source, temp);

        if(found < 0) {
            $(this).val(''); //this clears out the field if non-existing value in <select><options> is typed.
        }
    }
});

<强>说明: map()方法创建一个jQuery对象,该对象填充了函数返回的任何内容(在本例中为每个<li>元素的文本内容)。

get()方法(当没有参数传递时)将该jQuery对象转换为实际的数组。

以下是我看到解决方案的原始link

我希望这会有所帮助。谢谢!