我如何在jquery自动建议插件中获得选定的值

时间:2013-07-30 08:47:58

标签: jquery jquery-plugins

这里我使用的是自动推荐插件,

我遇到了获取所选值的问题。

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);}
});

拜托,任何人都可以帮我解决这个问题,

Here is the documentation for plugin

Similar Question from stack overflow

由于

2 个答案:

答案 0 :(得分: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上查看此内容。 我会试着看看这个小虫子发生了什么。

希望它对你有所帮助。

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

答案 1 :(得分:1)

asHtmlID: 'aaaaa'

中添加.autoSuggest()

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