2010-12-02 19 views
0

J'utilise JQuery UI Autocomplete dans ma JSP. Chaque fois que l'utilisateur tape le caractère, j'ai fait la demande au serveur et obtenir les données comme JSON et charger avec le pulgin.JQuery Saisie semi-automatique Problème

Cela fonctionne très bien. Mais chaque fois que j'ai tapé le même caractère que le terme précédent. Il ne remplit aucune valeur.

Par exemple, d'abord, j'ai tapé p, il liste les p éléments de départ. J'ai le bouton pour réinitialiser le contenu du texte de autocompleter. Après la réinitialisation, si je tape le même caractère p, cela ne montre rien.

mon code comme suit,

var cache = {}; 

    $("#Name").autocomplete({ 
      source: function(req, add){ 
     if (req.term in cache) { 
       add(cache[req.term]); 
       return; 
      } 
    $.getJSON("/store/StockManagement?action=getMedicinesStock",req, function(data) { 
        var medicines = []; 
        $.each(data, function(i, val){ 
        medicines.push(val.name + "," + val.code); 
      }); 

      cache[req.term] = medicines; 
      add(medicines); 
     }); 
    },select: function(e, ui) { 
     var medicine = ui.item.value; 
     $('#Code').val(medicine.split(",")[1]); 
     setTimeout(function(){ 
      var med = $('#Name').val(); 
      $('#Name').val(med.split(",")[0]); 
     },500); 
     } 
    }); 

Répondre

0
// Taken from jquery-ui-1.8.4.custom.min.js 
if (a.term != a.element.val()) { // *** THE MATCH IS HERE 
    //console.log("a.term != a.element.val(): "+a.term+", "+a.element.val()); 
    a.selectedItem = null; 
    a.search(null, c) // *** SEARCH IS TRIGGERED HERE 
} 

Je viens de parler de la condition. maintenant ça marche bien.