Я пов'язував подію на подію зміни моїх вибраних елементів із цим:
$('select').on('change', '', function (e) {
});
Як я можу отримати доступ до елемента, який був обраний, коли відбувається подія зміни?
Я пов'язував подію на подію зміни моїх вибраних елементів із цим:
$('select').on('change', '', function (e) {
});
Як я можу отримати доступ до елемента, який був обраний, коли відбувається подія зміни?
Відповіді:
$('select').on('change', function (e) {
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
....
});
$("selector", this)
вами знаходять усі selector
елементи всередині this
контексту. Написання $("selector", this)
майже те саме, що $(this).find('selector')
$()
це псевдонім jQuery()
, ви можете знайти тут документацію: api.jquery.com/jQuery Підпис, зазначений там, очевидно jQuery( selector [, context ] )
. @Bellash: якщо це "майже те саме", яка різниця? Або що швидше? Я вважаю за краще, .find()
оскільки це більше OO IMO ...
.find()
приблизно на 10% швидше відповідно до цієї відповіді: stackoverflow.com/a/9046288/2767703
Можна скористатися методом пошуку jQuery
$('select').change(function () {
var optionSelected = $(this).find("option:selected");
var valueSelected = optionSelected.val();
var textSelected = optionSelected.text();
});
Наведене вище рішення прекрасно працює, але я вирішу додати наступний код для тих, хто бажає отримати опцію, що натиснув. Це дозволяє отримати вибраний варіант, навіть якщо це значення вибору не змінилося. (Тестується лише з Mozilla)
$('select').find('option').click(function () {
var optionSelected = $(this);
var valueSelected = optionSelected.val();
var textSelected = optionSelected.text();
});
option
подій є ризикованою пропозицією, особливо на мобільних пристроях. Наприклад, Webkit не підтримує цю подію правильно: bugs.chromium.org/p/chromium/isissue/detail?id=5284
У випадку, якщо хтось використовує делегований підхід для свого слухача, використовуйте e.target
(він буде посилатися на елемент вибору).
$('#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');
}
Я вважаю це коротшим і чистішим. Крім того, ви можете переглядати вибрані елементи, якщо їх більше;
$('select').on('change', function () {
var selectedValue = this.selectedOptions[0].value;
var selectedText = this.selectedOptions[0].text;
});
selectedOptions
доступний не у всіх браузерах.
this.options[ this.options.selectedIndex ]
. Mozilla каже, що підтримується Firefox з 26, IE Немає підтримки.
<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();
});
Спочатку створіть select option
. Після цього за допомогою jquery
ви можете отримати поточне вибране значення, коли користувач змінить select option
значення.
$('#_SelectID').change(function () {
var SelectedText = $('option:selected',this).text();
var SelectedValue = $('option:selected',this).val();
});
Ще один і короткий спосіб отримати значення вибраного значення,
$('#selectElement').on('change',function(){
var selectedVal = $(this).val();
^^^^ ^^^^ -> presents #selectElement selected value
|
v
presents #selectElement,
});
Дивіться офіційну документацію API https://api.jquery.com/selected-selector/
Це добре працює:
$( "select" ).on('change',function() {
var str = "";
// For multiple choice
$( "select option:selected" ).each(function() {
str += $( this ).val() + " ";
});
});
і
$( "select" ).on('change',function() {
// For unique choice
var selVal = $( "select option:selected" ).val();
});
і бути простим для унікального вибору
var SelVal = $( "#idSelect option:selected" ).val();
Ви можете використовувати цю подію зміни вибору jquery для отримання вибраного значення параметра
$(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>