2013-08-02 77 views
-1

正在使用jQuery 1.9.1。面對自動完成中的問題。我在JSON Ajax調用中填充自動完成值。當我嘗試使用自動完成事件時,它不起作用並給出一些奇怪的響應。從JSON調用獲取值後。只有在發出兩次警報後,自動完成功能纔會填充這些值。這兩個警報都檢查我從JSON調用獲得的vaues。在我的第一個警報中,值是空的,但在第二個調用值中存在。如果我沒有嘔吐警報。一個額外的html ajax調用正在以screenload動作的名義提交。這我可以看到在Firefox的螢火蟲。附的代碼和屏幕截圖(參照對於情況2:櫃面沒有警報)自動完成jQuery 1.9.1的問題

var airports = ""; 
$.ajax({ 
url: "populateAirportCodes?fragments="+element.target, 
type: "POST", 
data: JSON.stringify(org), 
contentType: "application/json", 
success: function(data) {        
airports = data; 
} 
}); 
$(".origincode").autocomplete({          
source: airports                   
}); 
+1

貌似在您的ajax請求返回並分配之前,您將'airports'作爲'source'傳遞。將自動完成代碼放入ajax成功函數 – billyonecan

+0

檢查此[鏈接](http://jqueryui.com/autocomplete/#remote-jsonp)。檢查查看源。 – Dinesh

+0

''.ajax()'參數的對象中的'data'應該是* stringified * JSON嗎?據我所知,它應該是「無論是形式爲key1 = value1&key2 = value2的查詢字符串,還是形式爲{key1:'value1',key2:'value2'}」的對象,請參見[jQuery-doc] //api.jquery.com/jQuery.ajax/) – cars10m

回答

1
var airports = ""; 
$.ajax({ 
url: "populateAirportCodes?fragments="+element.target, 
type: "POST", 
data: JSON.stringify(org), 
contentType: "application/json", 
success: function(data) {        
$(".origincode").autocomplete({          
source: data , 
minLength: 1, 

}); 

} 
}); 
+0

它的工作。但不完全。在你提到的,第一次按鍵時,自動完成功能不起作用。它在第一次按鍵時閒置。在下一步它是填充。 – selva

+0

ans updated我添加了最小長度minLength:2, –

+0

但是我需要在用戶從第一個單詞開始typings時填充值。 – selva

0

嘗試此

var airports = ""; 

$(".origincode").autocomplete({          
    source:"populateAirportCodes?fragments="+element.target,                
}); 

的響應是在這種格式

[{ 
    value: "jquery", 
    label: "jQuery", 
    }];