2011-11-30 26 views
0

我有一個使用本地JSON數據的自動完成字段。jquery自動完成 - 獲取所選項目

$("#tags").autocomplete({ 
source: get_items, 
minLength: 2, 
dataType: 'json' 

}); 

function get_items(request, callback) { 
    var result = new Array; 

    var myregexp = new RegExp('^' + request.term, "i"); 

    for(var i = 0; i < keywords.length; i++) { 
    if (myregexp.test(keywords[i].name)) { 
     var item = { label: keywords[i].name, 
        id : keywords[i].id 
        }; 
     result.push(item); 
    } 

    } 

    callback(result); 
    return result; 
} 

什麼我找不到(我做了RTFM),我怎麼能從某處「外部」獲得所選項目的ID。我的意思不是來自自動完成回調,而是來自其他地方的一些不相關的功能。 希望,我很乾淨。

類似:

function i_do_something_with_the_selected_item() { 
     var seleted_id = $("#tags").get_selected_id(); 
    if (typeof selected_id === 'undefined') { 
    // nothing selected - act accordingly 

    } else {  
    // do something with the selected value 
    } 

} 

回答

1

jQuery的自動完成功能是用於自動完成。它不會記憶選擇哪些項目(這不是它的工作)。這是應用程序邏輯,在你身上。

但是,您可以通過調用

$('#tags').autocomplete('source'); 

訪問源陣列我想這將是非常方便易,有些人的物業寫入所選項目的autocompleteselect事件。現在,您可以在代碼中的其他地方讀取該值。

+0

謝謝。我認爲這會奏效。 – jira