2017-10-17 2 views
0

JSON a des clés: id, n et d. J'ai besoin d'obtenir 'id' et 'n' de l'élément sélectionné afin de créer une URL.jQuery UI autocomplete select obtenir toutes les valeurs de json

$.ajax({ 
    type: "GET", 
    url: "q.json", 
    success: function(data) { 
     var items = []; 
     $.each(data, function(key, val) { 
     items.push(val); 
     }); 

     $("#tags").autocomplete({ 
     maxResults: 4, 
     minLength: 2, 
     source: function(request, response) { 
      var filteredArray = $.map(items, function(item) { 
      if (item.n.toUpperCase().indexOf(request.term.toUpperCase()) == 0) { 
       return item.n + " ("+item.d+")"; 
      } else { 
       return null; 
      } 
      }); 
      response(filteredArray.slice(0, this.options.maxResults)); 
     }, 
     select: function(event, ui) { 
      alert("you selected " + ui.item.id); 
      window.location.href = ui.item.id+"-"+ui.item.n; 
     } 
     }); 

    } 
    }); 

Comment puis-je obtenir le résultat attendu?

+0

Il est pas très clair, qu'attendez-vous exactement? – GGO

Répondre

0

J'ai eu 3 clés dans JSON et a dû les obtenir dans select: function (event, ui)

 $("#tags").autocomplete({ 
      maxResults: 4, 
      minLength: 2, 
      source: function(request, response) { 
      var filteredArray = $.map(items, function(item) { 
       if (item.n.toUpperCase().indexOf(request.term.toUpperCase()) == 0) { 
       return { 
        id: item.id 
        label: item.n + " ("+item.d+")", 
       } 
       } else { 
       return null; 
       } 
      }); 
      response(filteredArray.slice(0, this.options.maxResults)); 
      }, 
      select: function(event, ui) { 
      event.preventDefault(); 
      $("#tags").val(ui.item.label); 
      window.location.href = ui.item.id+"-"+ui.item.n; 
      }, 
     }); 

     });