Angesichts der folgenden:
<select id="location">
<option value="a" myTag="123">My option</option>
<option value="b" myTag="456">My other option</option>
</select>
<input type="hidden" id="setMyTag" />
<script>
$(function() {
$("#location").change(function(){
var element = $(this);
var myTag = element.attr("myTag");
$('#setMyTag').val(myTag);
});
});
</script>
Das funktioniert nicht ...
Was muss ich tun, um den Wert des ausgeblendeten Feldes auf den Wert von myTag zu aktualisieren, wenn die Auswahl geändert wird? Ich gehe davon aus, dass ich etwas tun muss, um den aktuell ausgewählten Wert zu erhalten ...?
Versuche dies:
quelle
Dies liegt daran, dass das Element "Auswählen" und nicht "Option" ist, in der Sie das benutzerdefinierte Tag haben.
Versuchen Sie Folgendes :
$("#location option:selected").attr("myTag")
.Hoffe das hilft.
quelle
Versuche dies:
In der Callback - Funktion für
change()
,this
bezieht sich auf die Auswahl, nicht auf die gewählte Option.quelle
Angenommen, Sie haben viele Auswahlmöglichkeiten. Das kann es:
quelle
Du bist ziemlich nah dran:
quelle
Einfachere Syntax bei einer Form.
var option = $('option:selected').attr('mytag')
... wenn mehr als eine Form.
var option = $('select#myform option:selected').attr('mytag')
quelle
Hier ist das gesamte Skript mit einem AJAX-Aufruf, um eine einzelne Liste innerhalb einer Seite mit mehreren Listen anzuvisieren. Keines der anderen oben genannten Dinge hat für mich funktioniert, bis ich das Attribut "id" verwendet habe, obwohl mein Attributname "ItemKey" ist. Mit dem Debugger
Chrome Debug
Ich konnte sehen, dass die ausgewählte Option Attribute hatte: mit einer Zuordnung zur JQuery "id" und dem Wert.
Hier ist die zu erstellende JSON-Datei ...
Hoffe das hilft, danke euch allen oben, dass ihr mich so weit gebracht habt.
quelle
Versuchen Sie dieses Beispiel:
quelle
quelle
Sie können dies auch mit versuchen
data-myTag
quelle
Der einfachste,
quelle