Ich habe ein Ereignis an das Änderungsereignis meiner ausgewählten Elemente gebunden:
$('select').on('change', '', function (e) {
});
Wie kann ich auf das Element zugreifen, das beim Eintreten des Änderungsereignisses ausgewählt wurde?
Ich habe ein Ereignis an das Änderungsereignis meiner ausgewählten Elemente gebunden:
$('select').on('change', '', function (e) {
});
Wie kann ich auf das Element zugreifen, das beim Eintreten des Änderungsereignisses ausgewählt wurde?
Antworten:
$('select').on('change', function (e) {
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
....
});
$("selector", this)
Ihnen finden alle selector
Elemente im this
Kontext. Schreiben $("selector", this)
ist fast das gleiche wie $(this).find('selector')
$()
es sich um einen Alias von handelt jQuery()
, finden Sie die Dokumentation hier: api.jquery.com/jQuery Die dort angegebene Signatur ist offensichtlich jQuery( selector [, context ] )
. @ Bellash: Wenn es "fast gleich" ist, was ist der Unterschied? Oder was ist schneller? Ich bevorzuge, .find()
da dies mehr OO IMO ist ...
.find()
ist laut dieser Antwort etwa 10% schneller: stackoverflow.com/a/9046288/2767703
Sie können die Methode jQuery find verwenden
$('select').change(function () {
var optionSelected = $(this).find("option:selected");
var valueSelected = optionSelected.val();
var textSelected = optionSelected.text();
});
Die obige Lösung funktioniert perfekt, aber ich füge den folgenden Code hinzu, damit sie die angeklickte Option erhalten. Sie können die ausgewählte Option auch dann erhalten, wenn sich dieser Auswahlwert nicht geändert hat. (Nur mit Mozilla getestet)
$('select').find('option').click(function () {
var optionSelected = $(this);
var valueSelected = optionSelected.val();
var textSelected = optionSelected.text();
});
option
Ereignisse ist insbesondere auf Mobilgeräten ein riskantes Unterfangen. Zum Beispiel unterstützt Webkit dieses Ereignis nicht richtig: bugs.chromium.org/p/chromium/issues/detail?id=5284
Wenn jemand den delegierten Ansatz für seinen Listener verwendet, verwenden Sie e.target
(er bezieht sich auf das Auswahlelement).
$('#myform').on('change', 'select', function (e) {
var val = $(e.target).val();
var text = $(e.target).find("option:selected").text(); //only time the find is required
var name = $(e.target).attr('name');
}
Ich finde das kürzer und sauberer. Außerdem können Sie ausgewählte Elemente durchlaufen, wenn mehr als eines vorhanden ist.
$('select').on('change', function () {
var selectedValue = this.selectedOptions[0].value;
var selectedText = this.selectedOptions[0].text;
});
selectedOptions
ist nicht in allen Browsern verfügbar.
this.options[ this.options.selectedIndex ]
. Mozilla sagt, wird von Firefox ab 26 unterstützt, IE Keine Unterstützung.
<select id="selectId">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
$('#selectId').on('change', function () {
var selectVal = $("#selectId option:selected").val();
});
Erstellen Sie zuerst eine select option
. Danach jquery
können Sie den aktuell ausgewählten Wert abrufen, wenn der Benutzer den select option
Wert ändert .
$('#_SelectID').change(function () {
var SelectedText = $('option:selected',this).text();
var SelectedValue = $('option:selected',this).val();
});
Ein weiterer und kurzer Weg, um den Wert des ausgewählten Werts zu erhalten,
$('#selectElement').on('change',function(){
var selectedVal = $(this).val();
^^^^ ^^^^ -> presents #selectElement selected value
|
v
presents #selectElement,
});
Siehe offizielle API-Dokumentation https://api.jquery.com/selected-selector/
Das funktioniert gut:
$( "select" ).on('change',function() {
var str = "";
// For multiple choice
$( "select option:selected" ).each(function() {
str += $( this ).val() + " ";
});
});
und
$( "select" ).on('change',function() {
// For unique choice
var selVal = $( "select option:selected" ).val();
});
und einfach für eine einzigartige Wahl sein
var SelVal = $( "#idSelect option:selected" ).val();
Sie können dieses jquery select change-Ereignis verwenden, um den ausgewählten Optionswert abzurufen
$(document).ready(function () {
$('body').on('change','#select', function() {
$('#show_selected').val(this.value);
});
});
<!DOCTYPE html>
<html>
<title>Learn Jquery value Method</title>
<head>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
<select id="select">
<option value="">Select One</option>
<option value="PHP">PHP</option>
<option value="jAVA">JAVA</option>
<option value="Jquery">jQuery</option>
<option value="Python">Python</option>
<option value="Mysql">Mysql</option>
</select>
<br><br>
<input type="text" id="show_selected">
</body>
</html>