8

我有一个使用 JQuery Autocomplete 的表单,它工作得很好。现在我需要另一个元素来强制用户在自动完成输入中选择一个有效的选项。可以输入他们想要的任何内容,并且所有内容都通过自动完成过滤。但是他们必须从服务列表中选择一些东西。如果他们不输入字段必须被空白。尝试了一些更改并选择无济于事的事情。这是我的自动完成代码。我看到了一些使用数据而不是源的示例操作。这似乎有很大的不同

$(function () {
    $("#sp_name").autocomplete({
        minLength: 2,
        delay: 300,
        source: function (request, response) {
            $.ajax({
                url: "./Search/",
                dataType: "json",
                data: {
                    term: request.term,
                    zoekterm: $("#al").html()
                },
                success: function (data) {
                    response($.map(data, function (item) {
                        return {
                            label: item.naam,
                            value: item.naam
                        }
                    }));
                }
            });
        }
    })
});
4

1 回答 1

8

尝试这个:

我在这里使用本地列表,但您也可以通过 json 数据源来实现。只需添加一个更改事件。唯一的问题是,如果用户不点击建议,它将变为空白(即使用户输入与建议相同的文本)。用户必须点击该建议。

var list = ["c", "c++", "c#","Basic","Mongo"];

$('#auto').autocomplete({
source: list,

select: function (event, ui) {
    $(this).val(ui.item ? ui.item : " ");},

change: function (event, ui) {
    if (!ui.item) {
        this.value = '';}
//else { Return your label here }
}
}); 

JsFidle:http: //jsfiddle.net/sarcastic/7KdZP/112/

In your case, Change function would be something like this:

change: function (event, ui)
{
if (!ui.label) { this.value = ''; }
}
于 2013-09-10T17:03:26.520 回答