2012-01-06 17 views
7

İstiyorum onay radyo düğmeleri: Bu kodu denedim ama çalışmıyor. Radyo düğmeleri ı " 'Temiz değerle radyo düğmesini seçin istiyorum, 3 farklı değerlere sahipjavascript onay radyo düğmeleri otomatik

nasıl ?! Ben bir web sayfasında otomatik olarak radyo düğmelerini kontrol edebilirsiniz Teşekkür

function getElements() 
    { 

    for (i=0; i<document.getElementsByTagName('input').length; i++) 
    { 
    //if (document.getElementsByTagName('input')[i].type == 'radio') 
    if(document.getElementsByTagName('input')[i].type=='radio') 
    { 
     //if (document.getElementsByTagName('input')[i].value=='clean') 
     document.getElementsByTagName('input')[i].click(); 
    } 
    } 

aşağıdaki gibi kod modifiye:

for (i=0; i<document.getElementsByTagName('input').length; i++) 
    { 

    if(document.getElementsByTagName('input')[i].type=='radio') 
    { 


     if(document.getElementsByTagName('input')[i].value == "clean") 
     { 
     document.getElementsByTagName('input')[i].checked =true; 
     } 

    } 
    } 

ama yine de bunun bir şifre çalışmıyor nedeni olabilir, bir iframe içinde :(

radyo düğmeleri vardır çalışmıyor?

+1

evet, bunu Manse farkındayım ve kodunuz müthiş ama bu senin suçun değil çünkü çalışmak yapımında mücadele ediyorum ama benim bilgim olmaması. Cevabını kabul edeceğim! –

+0

evet sorun iframe oldu ve ben düzeltilmiş ve her şey kodunuzu Manse çok teşekkür iyi çalışıyor, sen benim adamsın! –

cevap

14

radyo düğmeleri sürü şeyler daha kolay

<input type="radio" name="myradios" value="clean"/> 
<input type="radio" name="myradios" value="somethingelse"/> 

var elements = document.getElementsByName('myradios'); 
for (i=0;i<elements.length;i++) { 
    if(elements[i].value == "clean") { 
    elements[i].checked = true; 
    } 
} 

Çalışma örnek yapacak "isimleri" ver: http://jsfiddle.net/Dwzc9/

görünmüyor

getElementsByName Güncelleme tüm IE desteklenecek

01: versiyonları ... yani orijinal örneğine dayanarak aşağıdaki kullanabilirsiniz

Çalışma örneği: http://jsfiddle.net/Dwzc9/2/

+0

Manse kod çalışıyor ama sorun iFrame olduğunu düşünüyorum. Ya da başka bir şey ve bunun için başarıyla çalıştıramam. –

3

yerine özniteliği "yı" ayarı deneyebilirsiniz.

var getElements = function() 
{ 
    var x = document.getElementsByTagName("input"); 
    var oldname = ''; 

    for(var i = 0; i < x.length; i++) 
    { 
     if(x[i].type == 'radio' && x[i].name != oldname && x[i].value == 'clean') 
     { 
      x[i].checked = true; 
      oldname = x[i].name; 
     } 
    } 
}; 

bu işlevle sorun onlar (genellikle böyledir) bir gruba ait eğer öyleyse her grup seçilecektir dan o, tüm radyo düğmeleri kontrol etmek yalnızca son radyo düğmesini dener olmasıdır . Eğer niyetiniz buysa, o zaman harika, aksi halde hangi düğmenin seçileceğine karar vermeyi ve döngüyü kırmayı düşünür. Ben elemanın adı niteliğini kontrol ederek, gruptaki yalnızca ilk düğmeyi seçmek için karar verdik yukarıda Sen işlevinde görebilirsiniz.

ben bu yardımcı olur umarım!

  • Matt

GÜNCELLEME

jQuery kullanarak bu işlemek için başka bir yol, şöyle olacaktır:

var getElements = function(){ 
    var oldname = ''; 
    $.each($('input[type="radio"]'), function(){ 
    if($(this).attr('name') != oldname && $(this).val() == 'clean'){ 
     $(this).checked = true; 
     oldname = this.name; 
    } 
    }); 
}; 
+1

Bu, sayfadaki her grup için bir radyo düğmesini işaretleyecek mi? OP sadece "temiz" bir değere sahip olduklarında onları kontrol etmek istiyor – ManseUK

+0

Olmalı. İsim niteliği, html radyo düğmelerinin "gruplandırılmış" biçimidir."Aynı adı taşıyan her düğme bir grupta. – Matt

+0

OH, Ben yanlış anladım soru. Bunu düzelteceğim. – Matt

İlgili konular