Normalerweise verwende ich $("#id").val()
, um den Wert der ausgewählten Option zurückzugeben, aber diesmal funktioniert es nicht. Das ausgewählte Tag hat die IDaioConceptName
HTML Quelltext
<label>Name</label>
<input type="text" name="name" />
<select id="aioConceptName">
<option>choose io</option>
<option>roma</option>
<option>totti</option>
</select>
javascript
jquery
html
William Kinaan
quelle
quelle
#aioConceptName
value
Attribut für diese<option>
s festlegen , oder?$("#aioConceptName").val()
zurückgegebenchoose io
.Antworten:
Für Dropdown-Optionen möchten Sie wahrscheinlich Folgendes:
Der Grund ,
val()
nicht den Trick zu tun ist , weil eine Option klicken , nicht den Wert des Dropdown ändern - es kommt noch hinzu, die:selected
Eigenschaft der gewählten Option , die ist ein Kind der Dropdown - Liste.quelle
.val()
Sollte in Ihrem Fall tatsächlich funktionieren - Sie müssen an anderer Stelle einen Fehler haben.val()
warum nicht verwendenvar conceptVal = $("#aioConceptName option").filter(":selected").val();
?var conceptVal = $("#aioConceptName option:selected").val()
?var mySelect = $('#mySelect');
/ * ... mehr Code passiert ... * /var selectedText = mySelect.find(':selected').text();
Stellen Sie die Werte für jede der Optionen ein
$('#aioConceptName').val()
hat nicht funktioniert, weil die.val()
zurückgibtvalue
Attribut zurückgegeben wird. Damit es richtig funktioniert, müssen dievalue
Attribute für jedes festgelegt werden<option>
.Jetzt können Sie anrufen,
$('#aioConceptName').val()
anstatt dass all dieses:selected
Voodoo von anderen vorgeschlagen wird.quelle
$('#aioConceptName').val()
null / "undefined" zurückgegebenprompt
Option<option>Please select an option</option>
. In meinem Fall war es kein Problem, ein leeres Wertattribut hinzuzufügen,<option value="">Please...</option>
aber ich glaube, dass es in einigen Fällen sinnvoll ist, kein Wertattribut zu haben. Aber +1, weil deine Vodoo-Formulierung mich zum Lächeln gebracht hat.val()
dievalue
anstelle des Textes in deroption
? Dh es wählt1
stattroma
..val()
. Wenn Sie den Text bearbeiten / verwenden möchten, verwenden$(":selected).text()
oder setzen Sie den Wert und den Text so, dass sie identisch sind.Ich stolperte über diese Frage und entwickelte eine präzisere Version von Elliot BOnnevilles Antwort:
oder generisch:
Dies erspart Ihnen einen zusätzlichen jQuery-Aufruf, wählt alles auf einmal aus und ist klarer (meiner Meinung nach).
quelle
querySelectorAll()
Methode genutzt wird (siehe jQuery-Dokumente ). Es sollte also langsamer sein als die Lösung des Eliot ..find(':selected')
wenn Sie es dann von einem Rückruf aus aufrufen, der an ein Ereignis angehängt ist ... wie$('#aioConceptname').bind('change', function(el) { console.log ( $(el).find(':selected').text() ); });
Versuchen Sie dies für Wert ...
oder dies für Text ...
quelle
Wenn Sie sich im Ereigniskontext befinden, können Sie in jQuery das ausgewählte Optionselement abrufen, indem Sie Folgendes verwenden
$(this).find('option:selected')
:Bearbeiten
Wie von PossessWithin erwähnt , beantwortet meine Antwort nur die Frage: Wie wähle ich die ausgewählte "Option" aus ?
Verwenden Sie als Nächstes, um den Optionswert abzurufen
option.val()
.quelle
$(this).find('option:selected').val()
am Ende hinzufügen sollten , um den Wert des Optionselements oder$(this).find('option:selected').text()
den Text zu erhalten. :)Haben Sie darüber nachgedacht, einfaches altes Javascript zu verwenden?
Siehe auch Abrufen eines Optionstextes / -werts mit JavaScript
quelle
quelle
Lesen des Werts (nicht des Textes) einer Auswahl:
Wie deaktiviere ich eine Auswahl? In beiden Varianten kann der Wert geändert werden mit:
EIN
Der Benutzer kann nicht mit dem Dropdown interagieren. Und er weiß nicht, welche anderen Optionen es geben könnte.
B.
Der Benutzer kann die Optionen in der Dropdown-Liste sehen, aber alle sind deaktiviert:
In diesem Fall
$("#Status").val()
funktioniert dies nur für jQuery-Versionen, die kleiner als sind1.9.0
. Alle anderen Varianten funktionieren.Wie aktualisiere ich eine deaktivierte Auswahl?
Über den Code dahinter können Sie den Wert in Ihrer Auswahl weiterhin aktualisieren. Es ist nur für Benutzer deaktiviert:
In einigen Fällen müssen Sie möglicherweise Ereignisse auslösen:
quelle
quelle
:selected
.. val () oder text () bei mehreren Auswahloptionen nicht richtig funktionieren, nur wenn ein Array daraus erstellt wird, wiemap()
es möglich wäre.Sie sollten diese Syntax verwenden:
Probieren Sie diesen Code aus:
Sie können in Fiddle testen: http://jsfiddle.net/PJT6r/9/
Siehe zu dieser Antwort in diesem Beitrag
quelle
Fügen Sie mit jQuery einfach ein
change
Ereignis hinzu und rufen Sie den ausgewählten Wert oder Text in diesem Handler ab.Wenn Sie ausgewählten Text benötigen, verwenden Sie bitte diesen Code:
Oder wenn Sie einen ausgewählten Wert benötigen, verwenden Sie bitte diesen Code:
quelle
Verwenden Sie die
jQuery.val()
Funktion auch für ausgewählte Elemente:quelle
Für alle, die herausgefunden haben, dass die beste Antwort nicht funktioniert.
Versuchen zu benutzen:
Funktioniert für mich in den letzten Projekten, daher lohnt es sich, einen Blick darauf zu werfen.
quelle
Genau das sollte funktionieren:
quelle
Einfach und ziemlich einfach:
Dein Dropdown
Abfragecode, um den ausgewählten Wert abzurufen
quelle
Sie können versuchen, es folgendermaßen zu debuggen:
quelle
Um den Wert des ausgewählten Tags abzurufen:
Und wenn Sie Text erhalten möchten, verwenden Sie diesen Code:
Zum Beispiel:
quelle
Wenn Sie das Attribut 'value' anstelle des Textknotens abrufen möchten, funktioniert dies für Sie:
quelle
versuche es mit diesem
quelle
Stellen Sie sich die DDL als Array mit Indizes vor. Sie wählen einen Index aus. Wählen Sie diejenige aus, auf die Sie sie mit Ihrem JS einstellen möchten.
quelle
Ich hoffe, dies hilft auch, besser zu verstehen und dies unten zu versuchen.
Für weitere Informationen besuchen Sie bitte http://www.drtuts.com/get-value-multi-select-dropdown-without-value-attribute-using-jquery/
quelle
Sie können verwenden
$("#drpList").val();
quelle
Um eine Auswahl mit demselben Klassennamen abzurufen, können Sie dies tun, um zu überprüfen, ob eine Auswahloption ausgewählt ist.
quelle
Ich hatte das gleiche Problem und fand heraus, warum es in meinem Fall nicht funktionierte.
Die HTML-Seite wurde in verschiedene HTML-Fragmente unterteilt und ich stellte fest, dass ich ein anderes Eingabefeld habe, das dieselbe ID von enthält
select
, was dazu führte, dass das Feldval()
immer leer warIch hoffe, dies spart den Tag für alle, die ähnliche Probleme haben.
quelle
Um $ ("# id"). val zu verwenden, sollten Sie der folgenden Option einen Wert hinzufügen:
sonst können Sie verwenden
Ich wünschte das hilft ..
quelle
Hier ist die einfache Lösung für dieses Problem.
quelle
var selectedaioConceptName = $('#aioConceptName option:selected').val();
ist besser als einen anderen Fund zu verwenden ()Bei dieser Art von Szenario ist es wahrscheinlich am besten, die Änderungsmethode von jQuery zu verwenden , um den aktuell ausgewählten Wert zu ermitteln.
Ich bevorzuge diese Methode, weil Sie dann Funktionen für jede ausgewählte Option in einem bestimmten Auswahlfeld ausführen können.
Ich hoffe, das hilft!
quelle
Normalerweise müssen Sie nicht nur den ausgewählten Wert abrufen, sondern auch eine Aktion ausführen. Warum also nicht die ganze jQuery-Magie vermeiden und den ausgewählten Wert einfach als Argument an den Aktionsaufruf übergeben?
quelle
Sie können mit der genau ausgewählten Option auswählen: Unten wird innerText angezeigt
Während unten gibt Ihnen Wert.
quelle