2010-06-16 17 views
5

Ich verwende jQuery UI Autocomplete 1.8.1 mit Jquery 1.4.2 und ich habe dieses Problem.JQuery UI Autocomplete, Wert nach Auswahl (mit der Maus) ist anders als (mit den Pfeiltasten)

Zuerst kann ich den Wert des Autocomplete-Eingabefeldes nicht erzwingen, nun, das ist kein großes Problem.

Aber ich habe dieses Problem mit sich:

ich nicht in ähnlicher Weise handeln, wenn ein Benutzer select eine Wahl Maus Pfeile mit Tastatur. Bei Verwendung der Tastatur ist alles in Ordnung und der Wert erscheint nach Auswahl in der Eingabetextbox, aber wenn die Maus verwendet wird, bleibt sie bei dem alten (typisierten) Wert und nicht bei dem ausgewählten Wert.

Wie dies zu steuern (Textfeld Wert nach Auswahl)? und warum gibt es unterschiedliche Verhaltensweisen?

P.S: Ändern des Wertes des Eingabefeldes innerhalb der select Funktion ist nutzlos, da es nicht möglich ist!

Antwort

0

ich es in der Präfekt Weise nicht lösen konnte, also ich habe es geschafft, das Sucheingabefeld auf select und zeigen eine weitere maßgeschneiderte div zu verbergen, die input erneut eingereicht am klicken Sie auf den Fokus übergeben an die jQuery UI Suche versteckt ist.

+0

Ich weiß, das ist alt, aber ich habe ein ähnliches Problem. sich darum kümmern, ein Kind zu teilen? – MatteS

2

Ich hatte ein ähnliches Problem.

Bei Verwendung der Tastatur geht der Fokus aus dem Textfeld verloren, aber beim Klicken kehrt der Fokus zurück zum Textfeld.

Es könnte sein, dass etwas im Fokus des Eingabefeldes passiert, das erneut ausgelöst wird?

1

Die sollution war Ereignis von prevent() innerhalb von der automatischen Vervollständigung Fokus Rückruf

2

Sie so etwas tun können, um zu stoppen:

$('#input').autocomplete({ 
    source: items, 
    focus: function(event, ui) { var text = ui.item.value; 
    $('#input').val(text); 
    return false; 
    } 
}); 

mit der Maus den Punkt Schweben, wird das Textfeld ausfüllen mit der Stromwert, und wenn Sie darauf klicken, in dem Wert bereits auf dem Textfeld angezeigt wird

3

oder Sie können es in ausgewählten

select: function(event, ui) { 
    $('#input').val(ui.item.value); 
} 
hinzufügen
Verwandte Themen