0

在这里,我使用了一个自动建议插件,

我在获取所选值时遇到问题。

var data = {items: [
{value: "21", name: "Mick Jagger"},
{value: "43", name: "Johnny Storm"},
{value: "46", name: "Richard Hatch"},
{value: "54", name: "Kelly Slater"},
{value: "55", name: "Rudy Hamilton"},
{value: "79", name: "Michael Jordan"}
]};

$("#search_query_top").autoSuggest(data.items, {
    selectedItemProp: "name",
    selectionLimit: 1, 
    searchObjProps: "name",
    startText: "Search by name,",
    resultClick: function(items){ console.log(items);}
});

请,任何人都可以帮助我解决这个问题,

这是插件的文档

堆栈溢出的类似问题

谢谢

4

2 回答 2

1

这是我为您提供的解决方案:

//this will store all the results.
var mySearchResult = {};
$("#search_query_top").autoSuggest(data.items, {
    selectedItemProp: "name",
    selectionLimit: 3, 
    searchObjProps: "name",
    startText: "Search by name,",
    //each time i add a new item, i store it in the mySearchResult object
    selectionAdded: function(item){mySearchResult[(item.clone().find("a").remove().end().text())] = true},
    //each time i remove an item, i delete if from mySearchResult and i remove the item from the visual.
    selectionRemoved: function(item){delete mySearchResult[(item.clone().find("a").remove().end().text())]; item.remove();}
});

$('#sbmButton').click(function(e){

    var tab = [];
    for(var k in mySearchResult){
        tab.push(k); 
    }

    alert(tab.join("\n"));

});

最后一个错误仍然出现,您添加的第一个项目没有从显示列表项目中删除。

您可以在此WORKING DEMO上查看。我会试着看看这个小虫子是怎么回事。

希望对您有所帮助。

编辑:查看其他答案,找到一种更“友好”的方式来做同样的事情。你必须做一些改变,但我认为这是最好的方法。我真的觉得这个插件很难找到这个值。最后我不推荐这个。

于 2013-07-30T10:11:55.313 回答
1

加入asHtmlID: 'aaaaa'_.autoSuggest()

$('#sbmButton').click(),添加console.log($('#as-values-aaaaa').val())

于 2013-07-30T10:34:13.520 回答