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

追加asHtmlID: 'aaaaa'する.autoSuggest()

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

于 2013-07-30T10:34:13.520 に答える
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 に答える