簡體   English   中英

Coffee Script自動完成功能,帶有jQuery,JSON和id變量

[英]Coffee Script Autocomplete with jQuery, JSON and id variable

我有點卡在這里,似乎無法讓jQuery自動完成為我工作。 我正在嘗試從JSON文檔提取中自動完成。

IE瀏覽器:

http://REMOTE_HOST/names.json

哪個類似:

[{"label":"Brian House", "id" : 1},
{"label":"Joe Green", "id" : 2},
{"label":"Fisher Gennings", "id" : 3},
{"label":"Sheila Williams", "id" : 4},
{"label":"Brett Nelson", "id" : 5},
{"label":"Angie Katz", "id" : 6},
{"label":"Zoe Middleton", "id" : 7},
{"label":"Parker Jones", "id" : 9}]

我想做的是在文本字段(user_friend_name)中具有標簽自動完成功能,然后使用ID填充隱藏字段(user_friend_name_id)。

#user_friend_name
#user_friend_name_id

我正在使用的咖啡腳本。

$(document).ready ->
        $('#user_friend_name').autocomplete
                source: "http://REMOTE_HOST/names.json"
                select: (event,ui) -> $("user_friend_name_id").val(ui.item.id)

現在看來,我在輸入所有名稱時都會得到一個JSON拉取,但鍵入時沒有選擇或過濾。 僅使用標准數組['foo','food','trees']作為源似乎可以正常工作。

假設如上所示返回了數據,則ui.item.id是要訪問的正確屬性。

我把你的榜樣弄得一團糟。 嘗試使用console.log()console.dir()調試屬性。

http://jsfiddle.net/fMWqU/

如果您仍然沒有運氣,那么問題可能出在您的json文檔上。 確保文檔與腳本位於同一域中,以防止跨域錯誤。 我過去也注意到,帶有Windows行尾的json文檔會導致某些瀏覽器失敗。 嘗試執行常規的$.ajax()並在done()和fail()處理$.ajax()使用console.dir()

xhr = $.ajax
  url : 'http://REMOTE_HOST/names.json'
  dataType : 'json'

xhr.done ->
  console.log arguments

xhr.fail ->
  console.log 'Fail! ', arguments

我相信它們應該具有值而不是id屬性。 我不熟悉咖啡腳本,但是我確定這是清晰的:

$.getJSON("http://REMOTE_HOST/names.json", function(response) {
    var newData = response.map(function(el) { return {label: el.label, value: el.id })
    $('#user_friend_name').autocomplete
        source: "http://REMOTE_HOST/names.json"
        select: (event,ui) -> $("user_friend_name_id").val(ui.item.value)
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM