2011-10-17 24 views
6

Tôi có câu hỏi, cách viết chức năng để chọn tất cả chceckbox trên biểu mẫu, khi tất cả các hộp kiểm Id bắt đầu từ một số const. chuỗi, sử dụng tập lệnh java thuần túy (không có khung công tác jquery và các khung công tác khác)? Tôi biết làm thế nào để nó bằng cách sử dụng từng chức năng từ JQuery, nhưng tôi không có bất kỳ ý tưởng hwo làm điều đó ở dạng JS.My tinh khiết cũ.Làm cách nào tôi có thể chọn tất cả các hộp kiểm từ biểu mẫu bằng JavaScript thuần túy (không có khung công tác JS)?

<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> 

Trả lời

1

Trong trường hợp của bạn:

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

Một phần tử không phải là hộp kiểm có thể có thuộc tính được chọn. Do xem xét các giải pháp được đề xuất bởi James – Kumar

+0

Có, hoặc không có một thuộc tính kiểm tra ở tất cả, tôi chỉ trả lời ví dụ. Câu trả lời của James chắc chắn là kỹ lưỡng hơn. – gregseth

37

Bạn có thể sử dụng getElementsByTagName để có được tất cả các yếu tố input:

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

Dưới đây là một example về điều đó. Nếu bạn chỉ quan tâm về các trình duyệt mới hơn, bạn có thể sử dụng querySelectorAll:

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

Và một example của một đó. Là một sang một bên, bạn đã đề cập trong câu hỏi của bạn rằng khi sử dụng jQuery bạn có thể làm điều này bằng cách sử dụng each. Bạn không cần phải sử dụng each, như hầu hết các phương pháp jQuery hoạt động trên tất cả các yếu tố trong tập hợp, vì vậy bạn có thể làm điều đó chỉ trong một dòng:

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

rằng về cơ bản nhiều tiền nó lên – david

+0

Một trong những câu trả lời toàn diện nhất mà tôi đã nhìn thấy. Tốt đẹp. – DiamondDrake

Các vấn đề liên quan