0

以下是我的 jQuery 代码:

$("#destinations").autocomplete({
    source: function (request, response) {
        $.getJSON("http://localhost/contactApi.do?&callback=?", 
          { 'contactMobile': request.term, maxRows: 12, style: "full" }, 
          function(data) {
              if(data.ApiResponse){
                  var x = $.map(data.ApiResponse, function(v, i){
                      console.log(v)
                      return {
                          label: v.Mobile + ' - ' + v.Name, 
                          v: v.Name
                      }
                  });
                  response(x);
              }
          }
        );        
    }
})

我可以通过 FireBug 观察到以下 JSON 响应是作为输入手机号码(如 123)的结果创建的......

{"ApiResponse":{"Status":1000,"TransactionId":"","Data":{"Contacts":[{"Email":"","Mobile":"123456","Name":"john"}]},"Operation":"api","ResponseTime":"2013-02-05T16:08:33+11:00","StatusText":"Success","RequestTime":"2013-02-05T16:08:33+11:00","Object":"Contact"}} 

这表明 jQuery 部分可能工作正常,但我的输入区域下方没有显示过滤结果的下拉菜单。我的脚本或 JSON 格式有问题吗?

谢谢,

4

1 回答 1

0

来自 JqueryUI 自动完成 API自动完成

标签属性显示在建议菜单中。当用户选择一个项目时,该值将被插入到输入元素中。如果只指定了一个属性,它将用于两者,例如,如果您只提供值属性,则该值也将用作标签。

应该是这样的。

return 
     {    label: v.Mobile + ' - ' + v.Name,,
          value: v.Name
     }
于 2013-02-05T06:59:05.227 回答