2011-10-17 13 views
6

Bazı onay kutularından bazı onay kutularından başlatıldığında, tüm chceckbox'ları formda seçmek için yazma işlevinin nasıl olduğunu soruyorum. dize, saf java komut dosyasını kullanarak (jquery ve diğer çerçeveler olmadan)? JQuery'den her işlevi nasıl kullandığını biliyorum, ancak saf JS.My formunda bunu yaptığım için hiçbir fikrim yok.Saf JavaScript'i (JS çerçeveleri olmadan) kullanarak bir formdaki tüm onay kutularını nasıl seçebilirim?

<form id="myId" name="myForm"> 
<input type="checkbox" id="lang_1" value="de"/> DE 
<input type="checkbox" id="lang_2" value="us"/> US 
<input type="checkbox" id="lang_3" value="ru"/> RU 
<input type="button" onclick="Select();" value="Select all"/> 
</form> 

cevap

1

:

for (i = 1; i<3; i++) { 
    document.getElementById('lang_'+i).checked = true; 
} 
+1

Onay kutusundan başka bir öğe kontrol edilmiş bir özniteliğe sahip olabilir. James tarafından önerilen çözümü düşünün – Kumar

+0

Evet, veya kontrol edilmiş bir öznitelik yok, sadece örneğe cevap verdim. James'in cevabı kesinlikle daha kapsamlı. – gregseth

37

Tüm input öğeleri almak için getElementsByTagName kullanabilirsiniz:

var inputs = document.getElementsByTagName("input"); 
for(var i = 0; i < inputs.length; i++) { 
    if(inputs[i].type == "checkbox") { 
     inputs[i].checked = true; 
    } 
} 

İşte o an example bu. Yalnızca yeni tarayıcılar hakkında umursuyorsan, querySelectorAll kullanabilirsiniz:

var inputs = document.querySelectorAll("input[type='checkbox']"); 
for(var i = 0; i < inputs.length; i++) { 
    inputs[i].checked = true; 
} 

Ve bu birinin example. Bir kenara, jQuery kullanırken each kullanarak bunu yapabileceklerini sorduğunuzda bahsettiniz. En jQuery yöntemleri eşleşti setindeki tüm unsurları üzerinde işlem gibi, each kullanmaya gerek yok, bu yüzden sadece bir satırda yapabilirsiniz: Senin durumunda

$("input[type='checkbox']").prop("checked", true); 
+0

o temelde çok toplam – david

+0

Gördüğüm en kapsamlı cevaplardan biri. Güzel. – DiamondDrake

İlgili konular