Web sayfamda aşağıdaki gibi 3 adet radyo butonum var:
<label for="theme-grey">
<input type="radio" id="theme-grey" name="theme" value="grey" />Grey</label>
<label for="theme-pink">
<input type="radio" id="theme-pink" name="theme" value="pink" />Pink</label>
<label for="theme-green">
<input type="radio" id="theme-green" name="theme" value="green" />Green</label>
jQuery'de, bu üçünden herhangi birine tıklandığında seçili radyo düğmesinin değerini almak istiyorum. JQuery'de id (#) ve class (.) seçicilerimiz var, ancak aşağıdaki gibi bir radyo düğmesini ismine göre bulmak istersem ne olur?
$("<radiobutton name attribute>").click(function(){});
Lütfen bana bu sorunu nasıl çözeceğimi söyleyin.
Bu işinizi görecektir, tüm bunlar documentation adresinde yer almaktadır ve burada buna çok benzer bir örnek bulunmaktadır:
$("input[type='radio'][name='theme']").click(function() {
var value = $(this).val();
});
Ayrıca, bu kod parçacığında birden fazla aynı kimliğe sahip olduğunuzu da belirtmeliyim. Bu geçersiz HTML'dir. Öğeleri gruplamak için ID'leri değil sınıfları kullanın, çünkü bunlar benzersiz olmalıdır.
Hangi radyo düğmesinin işaretli olduğunu belirlemek için şunu deneyin:
$('input:radio[name=theme]').click(function() {
var val = $('input:radio[name=theme]:checked').val();
});
Olay, gruptaki tüm radyo düğmeleri için yakalanacak ve seçilen düğmenin değeri val içine yerleştirilecektir.
Güncelleme: Gönderdikten sonra Paolo'nun yukarıdaki cevabının daha iyi olduğuna karar verdim, çünkü bir daha az DOM traversi kullanıyor. Seçilen öğenin tarayıcılar arası uyumlu bir şekilde nasıl elde edileceğini gösterdiği için bu yanıta izin veriyorum.
Bunun gibi bir şey olabilir mi?
$("input:radio[name=theme]").click(function() {
...
});
Herhangi bir radyo düğmesine tıkladığınızda, bu düğmenin seçili olacağına inanıyorum, bu nedenle bu düğme seçili radyo düğmesi için çağrılacaktır.