Für diese Dropdown-Liste in HTML:
<select id="countries">
<option value="1">Country</option>
</select>
Ich möchte die Liste öffnen (genauso wie wenn ich mit der linken Maustaste darauf klicke). Ist dies mit JavaScript (oder genauer jQuery) möglich?
jquery
html
drop-down-menu
Jon Tackabury
quelle
quelle
Antworten:
Sie können leicht einen Klick auf ein Element simulieren , aber ein Klick auf ein
<select>
öffnet das Dropdown-Menü nicht.Die Verwendung von Mehrfachauswahl kann problematisch sein. Vielleicht sollten Sie Optionsfelder in einem Containerelement berücksichtigen, die Sie nach Bedarf erweitern und verkleinern können.
quelle
Ich habe versucht, das Gleiche zu finden und wurde enttäuscht. Am Ende habe ich die Attributgröße für das Auswahlfeld so geändert, dass es sich zu öffnen scheint
und dann, wenn du fertig bist
quelle
size
Attributs zum Dropdown konvertiert das Dropdown-Menü tatsächlich in Listbox. Dadurch wird es erweitert.Ich bin auf dasselbe Problem gestoßen und habe eine Lösung. Eine Funktion namens ExpandSelect (), die das Klicken mit der Maus auf das Element "select" emuliert. Dazu wird ein anderes
<select>
Element erstellt, das absolut positioniert ist und durch Festlegen dessize
Attributs mehrere Optionen gleichzeitig sichtbar macht . Getestet in allen gängigen Browsern: Chrome, Opera, Firefox, Internet Explorer. Erklärung, wie es funktioniert, zusammen mit dem Code hier:Bearbeiten (Link war defekt) .
Ich habe ein Projekt bei Google Code erstellt. Suchen Sie dort den Code:
http://code.google.com/p/expandselect/
Screenshots
Es gibt einen kleinen Unterschied in der GUI beim Emulieren von Klicks, aber es spielt keine Rolle, überzeugen Sie sich selbst:
Beim Mausklick:
(Quelle: googlecode.com )
Beim Emulieren klicken Sie auf:
(Quelle: googlecode.com )
Weitere Screenshots auf der Website des Projekts finden Sie oben.
quelle
Dies sollte es abdecken:
Dies kann beispielsweise an ein Tastendruckereignis gebunden sein. Wenn das Element den Fokus hat, kann der Benutzer eingeben und es wird automatisch erweitert ...
--Kontext--
quelle
$('#select_element').get(0).dispatchEvent(event);
Dies ergibt sich aus den obigen Antworten und verwendet die Länge / Anzahl der Optionen, um der Anzahl der tatsächlich verfügbaren Optionen zu entsprechen.
Hoffe, das hilft jemandem, die Ergebnisse zu erzielen, die er braucht!
quelle
Einfach und leicht.
Jetzt können Sie Ihren DropDown einfach so aufrufen
Funktioniert perfekt für mich.
Vielleicht besser, weil Sie keine Probleme mit der Position der anderen Elemente auf der Seite haben.
Ändern Sie die ID in einen festen Wert, der vielleicht nicht klug ist, aber ich hoffe, Sie sehen die Idee.
quelle
Es ist nicht möglich, dass Javascript auf ein Element "klickt" (Sie können das angehängte Element auslösen
onclick
Ereignis , aber Sie können nicht buchstäblich darauf klicken).Um alle Elemente in der Liste anzuzeigen, machen Sie die Liste zu einer
multiple
Liste und vergrößern Sie sie wie folgt:quelle
Nein, kannst du nicht.
Sie können die Größe ändern, um sie zu vergrößern ... ähnlich wie bei Dreas, aber es ist die Größe, die Sie ändern müssen.
quelle
Ich habe versucht, die Antwort von mrperfect zu verwenden, und ich hatte ein paar Pannen. Mit ein paar kleinen Änderungen konnte ich es für mich zum Laufen bringen. Ich habe es nur so geändert, dass es nur einmal funktioniert. Sobald Sie Dropdown beenden, wird zur normalen Dropdown-Methode zurückgekehrt.
quelle
Eine Sache, die dies nicht beantwortet, ist, was passiert, wenn Sie auf eine der Optionen in der Auswahlliste klicken, nachdem Sie Ihre Größe = n festgelegt und die absolute Positionierung vorgenommen haben.
Da das Unschärfeereignis die Größe = 1 ergibt und es wieder so ändert, wie es aussieht, sollten Sie auch so etwas haben
Wenn Sie Probleme mit der absolut positionierten Auswahlliste haben, die hinter anderen Elementen angezeigt wird, geben Sie einfach ein
oder so ähnlich im Stil der Auswahl.
quelle
Super einfach:
quelle
scrollIntoView
auf der<select>
.Wie bereits erwähnt, können Sie ein Programm nicht programmgesteuert
<select>
mit JavaScript öffnen .Sie können jedoch selbst schreiben
<select>
und das gesamte Erscheinungsbild selbst verwalten. So etwas wie das, was Sie für die Suchbegriffe zur automatischen Vervollständigung bei Google oder Yahoo! oder das Feld Nach Standort suchen bei The Weather Network .Ich habe hier eine für jQuery gefunden . Ich habe keine Ahnung, ob es Ihren Anforderungen entspricht, aber selbst wenn es Ihren Anforderungen nicht vollständig entspricht, sollte es möglich sein, es so zu ändern, dass es sich als Ergebnis einer anderen Aktion oder eines anderen Ereignisses öffnet. Dieser sieht tatsächlich vielversprechender aus.
quelle
Ich habe gerade hinzugefügt
und in die Auswahl hinzufügen
um das gleiche Aussehen wie das klassische zu machen (überlappen Sie den Rest von HTML)
quelle
Vielleicht zu spät, aber so habe ich es gelöst: http://jsfiddle.net/KqsK2/18/
quelle