2017-05-17 3 views
0

Ich habe eine Autocomplete-Funktion, die wirklich gut funktioniert, aber jetzt, was ich versuche zu tun ist, rufen Sie die Autocomplete-Funktion onfocus, die ich versuchte, aber nicht funktioniert.JQuery: Wie Autocomplete-Funktion auf Fokus aufrufen?

Unten ist mein Code:

function myAutoComplete() { 

     var label = "No Results"; 
     var error="Error"; 

     $("#myForm\\:autocomplete").autocomplete({ 
      source: function(request, response) { 
       $.ajax({ 
        url: "#{request.context}/rest/myFunctionPath", 
        dataType: "json", 
        type:'POST', 
        data: { 
         de : request.de, 
         id : id 
        }, 
        success: function(data) { 
         if(data.length==0) 
          response([label]); 
         else 
          response(data); 
        }, 
        error: function(jxhr, textStatus, errorThrown){ 
         var result = [error]; 
         response(result); 
        } 
       }); 
      }, 
      select : function(event, ui) 
      { 
       if (ui.item.label == label || ui.item.label == error) { 
        event.preventDefault(); 
        return false; 
       } else { 

       } 
      }, 
     }).focus(function(){    
      $(this).data("autocomplete").search($(this).val()); 
     }); 
    }; 

Wie kann ich die obige Funktion zur automatischen Vervollständigung auf Fokus der Textbox nennen ?.

Wenn ich auf Textbox klicken i erhalten Fehler

TypeError: $(...).data(...) is undefined 

Bitte führen

+0

Verwenden Sie 'onfocus = myAutoComplete()' für den Aufruf. Stellen Sie sicher, dass Sie 'jquery.js' zuerst einschließen. –

Antwort

0

try myAutoComplete() innerhalb der Fokusfunktion dieses

$("#target").focus(function() { 
    myAutoComplete(); 
}); 

oder

Gebrauch zu nennen