Vous ne savez pas comment utiliser la saisie semi-automatique de l’interface utilisateur JQuery… :(

C’est la suite d’une précédente question JQueryUI Autocomplete, ai-je posée .

Cette fois, mes données me sont retournées … mais je ne sais pas du tout comment définir le code HTML à afficher et comment le mettre à jour de manière dynamic avec mes résultats.

Alors, voici mon jquery ….

Home.js

 function AutoComplete(element) { var cache = {}; $(element).autocomplete({ minLength: 2, source: function (request, response) { if (request.term in cache) { response(cache[request.term]); return; } else { $.getJSON("/api/autocomplete/" + encodeURIComponent(request.term), function (data) { cache[request.term] = data; response(data); }); } } }); } 

et cela est câblé dans ma vue

Index.aspx

  $(document).ready(function () { AutoComplete("#searchQuestion"); })  

Maintenant .. je ne suis pas sûr de savoir comment je lui dis d’utiliser certains (encore à faire) html / div / etc. … et ensuite pour peupler cette liste

    (je suppose que j’étends le rappel, au-dessus .. au lieu d’appeler cette méthode de response(data) .. wtf est-ce que c’est?)

    Voici mon exemple de travail de la saisie semi-automatique de jQuery UI. J’espère que ça aide:

      var cache = {}; $("#textbox").autocomplete({ source: function(request, response) { if (request.term in cache) { response($.map(cache[request.term].d, function(item) { return { value: item.value, id: item.id } })) return; } $.ajax({ url: "/Services/AutoCompleteService.asmx/GetEmployees", /* I use a web service */ data: "{ 'term': '" + request.term + "' }", dataType: "json", type: "POST", contentType: "application/json; charset=utf-8", dataFilter: function(data) { return data; }, success: function(data) { cache[request.term] = data; response($.map(data.d, function(item) { return { value: item.value, id: item.id } })) }, error: HandleAjaxError // custom method }); }, minLength: 3, select: function(event, ui) { if (ui.item) { formatAutoComplete(ui.item); // custom method } } }); 

    Si vous ne le faites pas maintenant, procurez-vous Firebug . C’est un outil précieux pour le développement Web. Vous pouvez définir un point d’arrêt sur ce JavaScript et voir ce qui se passe.

    Ce code a fonctionné pour moi:

     $( "#Textbox" ).autocomplete({ minLength: 2, source: function( request, response ) { var term = request.term; if ( term in cache ) { response( cache[ term ] ); return; } var currentProject=$("#project option:selected").text(); $.ajax({ url: "url", data: {term : request.term, IssueType :'Test', Project : currentProject}, dataType: "json", contentType: "application/json; charset=utf-8", dataFilter: function(data) { return data; }, success: function (data) { var results = $.map(data, function(item){ return { value: item.value, id: item.id }}); cache[request.term] = results; response(results); } }); } });