0

以下の問題についてあなたの助けが必要です。

jQuery AutoComplete 関数を使用して Input Hidden 値を設定しようとしていますが、値が渡されません (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."}]

追加情報が必要な場合はお知らせください..

どうも..

4

1 に答える 1

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
}
于 2013-01-16T03:23:57.400 に答える