Problem ifadesi basittir. Kullanıcının bir radyo grubundan bir radyo düğmesi seçip seçmediğini görmem gerekiyor. Gruptaki her radyo düğmesi aynı id'yi paylaşıyor.
Sorun şu ki, formun nasıl oluşturulacağı üzerinde kontrolüm yok. İşte bir radyo düğmesi kontrol kodunun nasıl göründüğüne dair örnek kod:
<input type="radio" name='s_2_1_6_0' value='Mail copy to my bill to address' id = "InvCopyRadio" onchange = 'SWESubmitForm(document.SWEForm2_0,s_4,"","1-DPWJJF")' style="height:20;width:25" tabindex=1997 >
Buna ek olarak, bir radyo düğmesi seçildiğinde, denetime bir "checked" özelliği eklenmez, sadece metin checked (sanırım bir değer olmadan sadece checked özelliği). Aşağıda seçili bir radyo kontrolünün nasıl göründüğü gösterilmektedir
<input type="radio" checked name='s_2_1_6_0' value='Mail copy to my bill to address' id = "InvCopyRadio" onchange = 'SWESubmitForm(document.SWEForm2_0,s_4,"","1-DPWJJF")' style="height:20;width:25" tabindex=1997 >
İşaretli radyo düğmesinin değerini almama yardımcı olabilecek jQuery kodu konusunda bana yardımcı olabilecek biri var mı?
İlk olarak, aynı kimliğe sahip birden fazla öğeye sahip olamazsınız. Formun nasıl oluşturulduğunu kontrol edemeyeceğinizi söylediğinizi biliyorum, ancak... bir şekilde tüm id'leri radyolardan kaldırmayı veya benzersiz hale getirmeyi deneyin.
Seçili radyo düğmesinin değerini almak için, :checked
filtresiyle düğmeyi ismine göre seçin.
var selectedVal = "";
var selected = $("input[type='radio'][name='s_2_1_6_0']:checked");
if (selected.length > 0) {
selectedVal = selected.val();
}
EDIT
Yani isimler üzerinde hiçbir kontrolünüz yok. Bu durumda, bu radyo düğmelerinin tümünü bir div içine yerleştirin, örneğin radioDiv
adını verin ve ardından seçicinizi biraz değiştirin derim:
var selectedVal = "";
var selected = $("#radioDiv input[type='radio']:checked");
if (selected.length > 0) {
selectedVal = selected.val();
}
$("#radioID") // select the radio by its id
.change(function(){ // bind a function to the change event
if( $(this).is(":checked") ){ // check if the radio is checked
var val = $(this).val(); // retrieve the value
}
});
Bunu DOM ready fonksiyonuna sardığınızdan emin olun ($(function(){...});
veya $(document).ready(function(){...});
).
if (!$("#InvCopyRadio").prop("checked") && $("#InvCopyRadio").prop("checked"))
// do something