2014-02-18 53 views
0

我不能找出爲什麼在一個函數,只有(radioBtn.checked)的第一個單選按鈕超過四如果。當我登錄其他人時,他們仍然在需要時進行檢查,但如果似乎沒有工作。下面是我所說的:只有屬性檢查的第一個單選按鈕工作正常

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

相關問題