2014-09-30 46 views
0

我使用jQuery typeahead來完成首次完美工作的自動完成,但是當我從列表中選擇一個選項然後嘗試再次使用它時鍵入輸入)它不會再顯示結果。當我從下拉列表中選擇一個選項時,jQuery typehead會停止工作

看起來像typeahead當我選擇一個選項時被破壞。

我創建了一個的jsfiddle給你可以看到發生了什麼,你可以輸入「有人」,在輸入更新#即可自動完成的數據:http://jsfiddle.net/cristiangrojas/rhtd9o8k/3/

var Opportunities = new Bloodhound({ 
    datumTokenizer: function(d) { 
    return Bloodhound.tokenizers.whitespace(
     '{id} {name} {identification} {email} {vehicle_registration}'.assign({ 
     "id": d["id"], 
     "name": d["name"], 
     "identification": d["identification"], 
     "email": d["email"], 
     "vehicle_registration": d["vehicle_registration"] 
     }) 
    ); 
    }, 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    local: opportunities 
}); 

Opportunities.initialize(); 

$('input[name="opportunities_search"]').typeahead({ 
    hint: true, 
    highlight: true, 
    minLenght: 1 
}, { 
    name: 'oportunidades', 
    displayKey: 'id', 
    source: Opportunities.ttAdapter(), 
    templates: { 
    empty: [ 
     '<div class="empty-message">', 
     'No se encontró ninguna oportunidad', 
     '</div>' 
    ].join('\n'), 
    suggestion: Handlebars.compile(
     '<p>' + 
     'Opp #{{ id }}' + 
     '<br>' + 
     '{{ name }}' + 
     '<br>' + 
     'CC: {{ identification }}' + 
     '<br>' + 
     'email: {{ email }}' + 
     '<br>' + 
     'Placa: {{ vehicle_registration }}' + 
     '</p>' 
    ) 
    } 
}); 
+1

你可以提出這個問題嗎? – 2014-09-30 13:44:59

+0

我剛剛更新了示例代碼和下面的jsfiddle url的問題:http://jsfiddle.net/cristiangrojas/rhtd9o8k/3/ – 2014-09-30 14:18:18

回答

1

從文檔:

https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md

displayKey - 對於給定的建議對象,確定它的字符串表示形式。在選擇建議後設置輸入控件的值時將使用此選項。可以是關鍵字符串,也可以是將建議對象轉換爲字符串的函數。默認爲值

您正在使用'id'鍵字符串,但是您的json數據對於id不是字符串而是數字。因此,要麼改變你的JSON數據有ID爲字符串或使用函數作爲一個字符串返回ID。在這個小提琴:

displayKey: function(d){return d.id+'';}, 

http://jsfiddle.net/rhtd9o8k/19/

哪裏d是建議對象返回,並且追加一個空的字符串到id屬性是一個簡單的方法來在javascript中將一個數字轉換爲一個字符串。

+0

忘了提及,typeahead並沒有被銷燬,只是碰到一個錯誤當它試圖比較輸入的前一個值和選擇一個項目後發生的輸入的當前值。 – Rel 2014-10-03 02:53:54

相關問題