1

我的页面中有一个自动完成元素,我使用 json 来请求数据,但我看不到 UI。

我过去做了测试,默认功能

 $(function() {
  var availableTags = [
    "ActionScript",
    "AppleScript",
    "Asp",
    "BASIC",
    "C",
    "C++",
    "Clojure",
    "COBOL",
    "ColdFusion",
    "Erlang",
    "Fortran",
    "Groovy",
    "Haskell",
    "Java",
    "JavaScript",
    "Lisp",
    "Perl",
    "PHP",
    "Python",
    "Ruby",
    "Scala",
    "Scheme"
    ];
    $( "#tags" ).autocomplete({
    source: availableTags
    });
 });

但是,我改变了我的数据结构

 $(function () {
     var availableTags = [
      {"label":"one label", "value":"one value", "id":1},
      {"label":"2 label", "value":"2", "id":2},
      {"label":"3 label", "value":"3", "id":3},
      {"label":"4 label", "value":"etc", "id":4}
        ];
     $("#tags").autocomplete({
         source: availableTags,
         select: function(event, ui) {
            $('#id_element').val(ui.item.id);//for example
  }
     });
 });

我这样做是为了处理事件选择,现在我想从 json 获取数据

 $("#inputskills").autocomplete({
         source: function( request, response ) {
    $.ajax({
        url: '/' + getPathStr() + '/Skills/1?term='+request.term,
        dataType: "json",
        data: {
            featureClass: "P",
            style: "full",
            maxRows: 12,
            name_startsWith: request.term
        },
        success: function( data ) {
        //alert(JSON.stringify(data));
            response( $.map( data, function( item ) {
            //alert(JSON.stringify(item));
            alert(item.value+' - '+item.label+ ' - ' + item.id );
                return{
                    label: item.label,
                    value: item.id
                }
            }));
        }
    });
},
select .....

我的服务返回正确的数据,当我使用警报功能显示数据时,是正确的数据,但是,自动完成没有工作,没有任何数据,我尝试更改返回代码,但我无法使其工作

我改成

  return {
     label: item.label,
     id: item.id,
     value: item.value
  }

或者

 return item;

但我仍然不能,请帮帮我。

4

0 回答 0