Все версии IE до IE9 не поддерживают getElementsByClassName()
.Вам нужно будет использовать какую-то замену.
Вместо этого куска вашего кода:
checkboxes = document.signup.getElementsByClassName("styled");
Я бы предложил использовать это:
checkboxes = document.getElementById("signup").getElementsByTagName("input")
getElementsByTagName()
широко поддерживается во всех версиях IE.Очевидно, что он получит все теги input
, но только для флажков будет установлен checked
, поэтому вы должны быть в порядке.
Если вам нужно отфильтровать по классу, то вы можете сделать все это следующим образом:
function check() {
"use strict";
// initialize checkbox count to 0
var count = 0, item;
// get all input tags in the form
var inputs = document.getElementById("signup").getElementsByTagName("input");
// loop through all input tags in the form
for (var i = 0; i < inputs.length; i++) {
// get this one into the local variable item
item = inputs[i];
// if this input tag has the right classname and is checked, increment the count
if ((item.className.indexOf("styled") != -1) && item.checked) {
count++;
}
}
// get object for result
var obj = document.getElementById("variable");
// check count and set result based on the count
if(count < 3) {
obj.value = "1";
} else if (count == 3) {
obj.value = "74";
} else if (count == 4) {
obj.value = "75";
} else if (count == 5) {
obj.value = "76";
}
}