Seçme öğelerimin değişiklik olayıyla ilgili bir olayı bununla bağladım:
$('select').on('change', '', function (e) {
});
Change olayı meydana geldiğinde seçilen öğeye nasıl erişebilirim?
Seçme öğelerimin değişiklik olayıyla ilgili bir olayı bununla bağladım:
$('select').on('change', '', function (e) {
});
Change olayı meydana geldiğinde seçilen öğeye nasıl erişebilirim?
Yanıtlar:
$('select').on('change', function (e) {
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
....
});
$("selector", this)
tüm selector
öğeleri buluyor this
. Yazmak $("selector", this)
neredeyse aynı $(this).find('selector')
$()
bir takma ad olduğundan jQuery()
, belgeleri burada bulabilirsiniz: api.jquery.com/jQuery Açık bir şekilde belirtilen imza açıktır jQuery( selector [, context ] )
. @Bellash: "neredeyse aynı" ise, fark nedir? Veya daha hızlı olan nedir? .find()
Bu daha çok OO IMO olduğu için tercih ediyorum ...
.find()
için bu yanıta göre yaklaşık% 10 daha hızlı: stackoverflow.com/a/9046288/2767703
Sen kullanabilirsiniz jQuery bulmak yöntemi
$('select').change(function () {
var optionSelected = $(this).find("option:selected");
var valueSelected = optionSelected.val();
var textSelected = optionSelected.text();
});
Yukarıdaki çözüm mükemmel çalışıyor ama tıkladıkları seçeneği almak isteyen onlar için aşağıdaki kodu eklemeyi seçiyorum. Bu seçim değeri değişmemiş olsa bile seçilen seçeneği elde etmenizi sağlar. (Yalnızca Mozilla ile test edilmiştir)
$('select').find('option').click(function () {
var optionSelected = $(this);
var valueSelected = optionSelected.val();
var textSelected = optionSelected.text();
});
option
Olaylara bağlanmak , özellikle mobil cihazlarda riskli bir tekliftir. Örneğin, Webkit bu etkinliği doğru bir şekilde desteklemiyor: bugs.chromium.org/p/chromium/issues/detail?id=5284
Herhangi birinin dinleyicisi için yetki verilen yaklaşımı kullanması durumunda , kullanın e.target
(select öğesine atıfta bulunacaktır).
$('#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');
}
Bunu daha kısa ve temiz buluyorum. Ayrıca, birden fazla varsa seçilen öğeler arasında yineleme yapabilirsiniz;
$('select').on('change', function () {
var selectedValue = this.selectedOptions[0].value;
var selectedText = this.selectedOptions[0].text;
});
selectedOptions
tüm tarayıcılarda mevcut değildir.
this.options[ this.options.selectedIndex ]
. Mozilla , 26, IE'den Firefox tarafından desteklendiğini söylüyor Destek yok.
<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();
});
İlk önce bir select option
. Bundan sonra jquery
kullanıcı select option
değerini değiştirirken geçerli seçilen değeri alabilirsiniz .
$('#_SelectID').change(function () {
var SelectedText = $('option:selected',this).text();
var SelectedValue = $('option:selected',this).val();
});
Seçilen değerin değerini almanın başka ve kısa bir yolu,
$('#selectElement').on('change',function(){
var selectedVal = $(this).val();
^^^^ ^^^^ -> presents #selectElement selected value
|
v
presents #selectElement,
});
Resmi API belgelerine bakın https://api.jquery.com/selected-selector/
Bu iyi işler:
$( "select" ).on('change',function() {
var str = "";
// For multiple choice
$( "select option:selected" ).each(function() {
str += $( this ).val() + " ";
});
});
ve
$( "select" ).on('change',function() {
// For unique choice
var selVal = $( "select option:selected" ).val();
});
ve benzersiz seçim için kolay olun
var SelVal = $( "#idSelect option:selected" ).val();
Seçili seçenek değerini almak için bu jquery seçme değiştirme olayını kullanabilirsiniz
$(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>