2013-01-16 44 views
0

我需要你在下面的問題上的幫助。jquery自動完成設置隱藏輸入選擇

我試圖設置一個使用jQuery自動完成函數的輸入隱藏值,但該值沒有被傳遞(ui.item.bank_id是未定義的)。

Javascript代碼:

$("#reg_bank").autocomplete({ 
    //define callback to format results 
    source: function(req, add){ 
     //pass request to server 
     $.getJSON("/get_banks.php?callback=?", { q:req.term }, function(data) { 
     //create array for response objects 
     var suggestions = []; 
     //process response 
     $.each(data, function(i, val){ 
      suggestions.push(val.bank_name+"("+val.bank_id+")"); 
     }); 
     //pass array to callback 
     add(suggestions); 
     }); 
    }, 
    select: function(e, ui) { 
     alert(ui.item.bank_id); 
     //$('#reg_bank_id').val(ui.item.bank_id); 
    }, 
    change: function() { 
    } 
    }); 

出於某種原因,我無法弄清楚,該ui.item.bank_id is undefined

我的JSON輸出這樣的事情: [{"bank_id":"341","bank_name":"Ita\u00fa Unibanco S.A."}]

讓我知道如果你需要任何附加信息。

THX ..

回答

2

我想你應該調整信號源功能如下

source: function(req, add){ 
    //pass request to server 
    $.getJSON("/get_banks.php?callback=?", { q:req.term }, function(data) { 
    //create array for response objects 
    var suggestions = []; 
    //process response 
    $.each(data, function(i, val){ 
     suggestions.push({'label':val.bank_name, 'value':val.bank_id}); 
    }); 
    //pass array to callback 
    add(suggestions); 
    // now suggestions is arrays of object with 'label' and 'value' properties 
    }); 
} 

和選擇功能如下

select: function(e, ui) { 
    alert(ui.item.value); // will get bank_id 
    alert(ui.item.label); // will get bank_name 
} 
+0

感謝您的回覆。 ui.item.value的作品,但這不是我想保存在隱藏領域的信息。我怎樣才能得到bank_id? – Fernando

+0

你有沒有試過ui.item.label? –

+0

是的。這兩個(值和標籤)返回相同的信息..我顯示的連接值... – Fernando