Ich versuche, den ausgewählten Wert eines ausgewählten Elements (Dropdown-Liste) mit jQuery abzurufen und festzulegen.
Zum Abrufen habe ich versucht $("#myId").find(':selected').val()
, $("#myId").val()
aber beide geben undefiniert zurück.
Jeder Einblick in dieses Problem wäre sehr dankbar.
Antworten:
Die Art und Weise, wie Sie es haben, ist im Moment richtig. Entweder ist die ID der Auswahl nicht das, was Sie sagen, oder Sie haben einige Probleme im Dom.
Überprüfen Sie die ID des Elements und überprüfen Sie auch Ihre Markup-Validierungen hier bei W3c.
Ohne einen gültigen dom kann jQuery nicht korrekt mit den Selektoren arbeiten.
Wenn die IDs korrekt sind und Ihr Dom validiert, gilt Folgendes:
Zum Lesen Optionswert auswählen
Einstellen Wählen Sie Optionswert
Ausgewählten Text lesen
quelle
Um die tatsächliche Eigenschaft selectedIndex des Auswahlelements abzurufen / festzulegen, verwenden Sie:
quelle
.attr()
und.prop()
sind auch nicht. Es funktioniert in bestimmten Fällen, in denen ein Attribut auch eine Eigenschaft ist, z . B..attr('id')
gleich.prop('id')
. In diesem Fall.prop('selectedIndex')
ist gleich.get(0).selectedIndex
.$('#myId').val()
sollte es tun, andernfalls würde ich versuchen:quelle
JQM
Vergessen Sie beim Einstellen mit nicht, Folgendes zu aktualisierenUI
:quelle
$("#myId").val()
sollte funktionieren wennmyid
die select element id ist!Dies würde das ausgewählte Element festlegen:
$("#myId").val('VALUE');
quelle
Angenommen, Sie haben eine Dropdown-Liste mit dem SELECT-Tag wie folgt erstellt:
Wenn Sie nun mit JQuery sehen möchten, welcher Wert aus der Dropdown-Liste ausgewählt wurde, setzen Sie einfach die folgende Zeile, um diesen Wert abzurufen.
es wird gut funktionieren.
quelle
Ich weiß, dass dies alt ist, aber ich hatte gerade eine Zeit mit Razor, konnte es nicht zum Laufen bringen, egal wie sehr ich es versuchte. Es wurde immer wieder als "undefiniert" angezeigt, unabhängig davon, ob ich "Text" oder "HTML" als Attribut verwendet habe. Schließlich habe ich der Option das Attribut "Datenwert" hinzugefügt und es hat das ganz gut gelesen.
quelle
$ ("Option #myId: ausgewählt") .text (); gibt Ihnen den Text, den Sie im Dropdown-Element ausgewählt haben. In beiden Fällen können Sie es in .val () ändern. um den Wert davon zu bekommen. Überprüfen Sie die folgende Codierung
quelle
Versuche dies
quelle