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 回答