Ich möchte eine Option festlegen, die zuvor ausgewählt wurde, um beim Laden der Seite angezeigt zu werden. Ich habe es mit folgendem Code versucht:
$("#gate").val('Gateway 2');
mit
<select id="gate">
<option value='null'>- choose -</option>
<option value='gateway_1'>Gateway 1</option>
<option value='gateway_2'>Gateway 2</option>
</select>
Das geht aber nicht. Irgendwelche Ideen?
jquery
html
jquery-selectors
html-select
Upvote
quelle
quelle
Antworten:
Das sollte auf jeden Fall funktionieren. Hier ist eine Demo . Stellen Sie sicher, dass Sie Ihren Code in ein
$(document).ready
:quelle
'Gateway 2'
an die Funktion übergebene Funktionval
dem Wert desvalue
Attributs der Auswahloption und nicht dem Text. In dieser JSFiddle , einer sehr mild bearbeiteten Version von Darins Demo, finden Sie ein Beispiel dafür, was ich meine.quelle
$('#gate').val('Gateway 2').prop('selected', true);
quelle
$('#your-select-box-id :nth-child(2)').prop('selected', true)
was funktioniert, mit visueller Aktualisierung der Dropbox.Ich habe festgestellt, dass die Verwendung der Methode jQuery .val () einen erheblichen Nachteil hat.
Befindet sich dieses Auswahlfeld (oder ein anderes Eingabeobjekt) in einem Formular und wird im Formular eine Schaltfläche zum Zurücksetzen verwendet. Wenn Sie auf die Schaltfläche zum Zurücksetzen klicken, wird der eingestellte Wert gelöscht und nicht wie erwartet auf den Anfangswert zurückgesetzt.
Das scheint für mich am besten zu funktionieren.
Für Auswahlfelder
Für Texteingaben
Für Textbereichseingaben
Für Kontrollkästchen
Für Optionsfelder
quelle
quelle
Das funktioniert gut. Siehe diese Geige: http://jsfiddle.net/kveAL/
Ist es möglich, dass Sie Ihre jQuery in einem
$(document).ready()
Handler deklarieren müssen ?Könnten Sie auch zwei Elemente haben, die dieselbe ID haben?
quelle
Dies wäre eine weitere Option:
quelle
Ich hatte das gleiche Problem.
Lösung: Fügen Sie eine Aktualisierung hinzu.
quelle
Ich weiß, dass es mehrere Iterationen von Antworten gibt, aber jetzt erfordert dies keine Abfrage oder eine andere externe Bibliothek und kann mit den folgenden Schritten ganz einfach durchgeführt werden.
quelle
Einige Fälle können sein
quelle
Mein Problem
Ich hatte das gleiche Problem. Der einzige Unterschied zu Ihrem Code besteht darin, dass ich das Auswahlfeld über einen Ajax-Aufruf geladen habe und sobald der Ajax-Aufruf ausgeführt wurde, den Standardwert des Auswahlfelds festgelegt habe
Die Lösung
quelle
Ich hatte ein Problem, bei dem der Wert aufgrund eines Syntaxfehlers vor dem Aufruf nicht festgelegt wurde.
Überprüfen Sie vor dem Aufruf, ob Syntaxfehler vorliegen.
quelle
quelle
quelle
.attr()
war der falsche Weg, dies zu tun, lange bevor diese Antwort veröffentlicht wurde.Ergänzung zu @icksde und @Korah (danke beide!)
Beim Erstellen der Optionen mit AJAX kann das document.ready ausgelöst werden, bevor die Liste erstellt wird
Das funktioniert nicht
Das macht
Ein Timeout funktioniert, aber wie @icksde sagt, ist es zerbrechlich (ich brauchte tatsächlich 20 ms anstelle von 10 ms). Es ist besser, es wie folgt in die AJAX-Funktion einzubauen:
quelle