2016-05-23 60 views
0

内容未显示为autocomplate列表,如下面的截图所示。自动完成问题:内容未显示

Autocomplete Error

我得到这个答复。

[{ “emp_number”:1,其中 “fname”: “尔斯兰”, “L-NAME”: “哈桑”},{ “emp_number”:2,其中 “fname”: “Muneeb”, “L-NAME”: “Janjua” } {“emp_number”:3,“fname”:“hr”,“lname”:“user”},{“emp_number”:4,“fname”:“test”,“lname”:“ “} .......... 去除,以使它看起来更好地在这里 .......]

我的JS代码:

$("#search-emp").autocomplete(
{ 
    source: function (request, response) 
    { 
     var form_data = { 
      ajax    : '1', 
      name    : $("#search-emp").val(), 
      actioncall   : 'search-emp' 
     }; 

     $.ajax({ 
      //contentType: "application/json", 
      type: "POST", 
      dataType: 'json', 
      url: "_ajax.php", 
      data: form_data, 
      success: function(data) 
      { 
       response(data); 
      } 
     }); 
    }, 
    minLength:3, 
    select:function(evt, ui) 
    { 
     alert(ui.item.emp_number); 
    } 
}); 

我想显示fnamelname上选入input字段。

+0

你能'的console.log(数据)''之前响应(数据)',并添加质疑,看看服务器的响应。有列表应该有名称或某些特定的键将被显示的字段。 –

+0

@DanielDudasI回应了我的问题。请现在看看。 – Hassaan

回答

1

这是因为jQuery自动完成想要有2个字段,名称分别为labelvalue。来自label的内容将显示在自动完成中。

因为你的服务器键返回其他的名字,你有两个选择:

  1. 更改服务器返回一个JSON,如:

    [{"emp_number":1,"fname":"Arslan","lname":"Hassan", "label":"Arslan Hassan", "value": "Arslan Hassan"},....]

  2. 或者从成功回调ajax用这个字段创建一个数组(labelvalue),并将该数组传递给response()回调。

你可以找到更多的信息在这里:http://api.jqueryui.com/autocomplete/#option-source

+0

谢谢。我按照你的建议改变了'json'响应。它的工作不只是一个问题。我在'输入'字段中只填写名字。 – Hassaan

+0

@Hassaan你需要将名字与姓氏连接成'label',这样两者都将显示在自动完成中。 –