2010-08-03 14 views
7

Wird ausgelöst, wenn ein Element aus dem Menü ausgewählt wird; ui.item bezieht sich auf den ausgewählten Artikel. Die Standardaktion von select besteht darin, den Wert des Textfelds durch den Wert des ausgewählten Elements zu ersetzen. Das Abbrechen dieses Ereignisses verhindert, dass der Wert aktualisiert wird, verhindert jedoch nicht, dass das Menü geschlossen wird.So verhindern Sie, dass bei der automatischen Vervollständigung ein Auswahlereignis ausgewählt wird jquery

$("#txt1").autocomplete({ 
    minLength: 1, 
    source: "abc.php", 
    select: function(event, ui) 
    { 
     event.preventDefault(); 
     //alert("Select"); 
     var label= ui.item.label; 
     var value= ui.item.value; 
     $('#txt1').val(ui.item.label); 
    } 
}); 
+0

Haben Sie jemals finde es heraus? –

Antwort

-1

diese Parameter mit Select: false

+0

funktioniert nicht. Entschuldigung – Trip

6

Ich weiß, dass dies eine sehr alte Frage, aber ich kam gerade über das Problem selbst. Die Antwort ist für mich event.preventDefault(); am Ende der Auswahl Methode wie folgt zu setzen:

$("#txt1").autocomplete({ 
    minLength: 1, 
    source: "abc.php", 
    select: function(event, ui) 
    { 
     //alert("Select"); 
     var label= ui.item.label; 
     var value= ui.item.value; 
     $('#txt1').val(ui.item.label); 
     event.preventDefault(); // <---- I moved! 
    } 
}); 

Für mich, wenn event.preventDefault(); zu Beginn der Funktion gesetzt wird, dann wird das Standardereignis nicht ausgelöst und der Rest der Funktion wird nicht ausgeführt. Wenn es bis zum Ende verschoben wird, funktioniert es wie erwartet. Hoffe das hilft jemand anderem.

+0

Nicht funktionierend für mich mit letzter Autocomplete. :( – user706420

0

Also das ist ein bisschen ein Hack, der für mich funktionierte: In meinem Fall einen Eintrag im Pulldown (entweder per Mausklick oder mit den Pfeiltasten zum Markieren und Drücken der EINGABETASTE), ich verwendete die value, um ein zu konstruieren URL und dann den Browser zu senden, aber es wurde noch in das Suchfeld kopiert. Keine der Antworten, die ich versuchte, funktionierte, um das zu verhindern. So zu stoppen value in das Suchfeld angezeigt wird, habe ich die value die gleiche wie label in meinem JSON und hinzugefügt ein zusätzliches Feld code, dass mein select Event-Handler die URL zu erstellen verwendet ich brauche:

$("#autocomplete").autocomplete({ 
    source: "http://www.example.com/search", 
    minlength: 2, 
    select: function(event, ui) { 
    // go to page on ENTER 
    window.location.href = "/page/" + ui.item.code; 
    } 
}); 
Verwandte Themen