2014-02-18 2 views
0

Я не могу узнать, почему в функции, только если (radioBtn.checked) первого переключателя из четырех проходит if. Когда я регистрирую остальных, они по-прежнему проверяются, когда им это нужно, но if, похоже, не работает. Вот то, что я говорю:Исключено только свойство, зарегистрированное из первого переключателя.

var input = document.getElementsByName("focus"); 
    for(var i = 0; i<input.length; i++) { 

     input[i].addEventListener("change", function(){ 
      getCheckedRadioValue("focus"); 
     }, false); 
    } 

    function getCheckedRadioValue(radioGroupName) { 
     var rads = document.getElementsByName(radioGroupName), 
      i; 
      this.value = 0; 

     for (i=0; i < rads.length; i++) { 
      console.log(rads[3].checked); 
      if (rads[i].checked){ 
       this.value = rads[i].value; 
       console.log(this.value); 
        return rads[i].value 
      } 

      return { 
       value: this.value 
      } 
     } 
    } 

    document.addEventListener('keydown', function (event) { 
      if (event.keyCode == 38) { 
       console.log(value); 
       switch (value) { 

        case "car": car.accelerate(); break; 
        case "boat": boat.accelerate(); break; 
        case "aircraft": aircraft.accelerate(); break; 
        case "amphibia": console.log("amphibia"); break; 
        default: console.log("Nothing is checked!"); break; 
       } 
     } 
    }); 

Here все в jsfiddle.

ответ

3

Вы возвращаете значение после первой итерации цикла for. Просто переместите возвращаемый по умолчанию возврат за пределы цикла for:

function getCheckedRadioValue(radioGroupName) { 
    var rads = document.getElementsByName(radioGroupName), i; 
    this.value = 0; 

    for (i = 0; i < rads.length; i++) { 
     if (rads[i].checked) { 
      this.value = rads[i].value; 
      return rads[i].value 
     } 
    } 
    return { 
     value: this.value 
    } 
} 
+0

Теперь я чувствую себя глупо ... спасибо человеку! :) – user3127242

+1

Нет проблем! Происходит к лучшему из нас :) – Hoedje

Смежные вопросы