2012-06-02 4 views
-1

Я получил JavaScript функцииJavascript функция не возвращает никакого результата

<head> 
    <title> 
     Test 
    </title> 
    <script type="text/javascript"> 
     function GetResult() 
     { 
      count = 0; 
      for(var i=0;i<10;i++){ 
       for(var j=1;j<4;j++){ 
        if (document.getElementById("label"+i+j).checked){ 
         count +=1; 
        } 
       } 
      } 
      if (count!=10) 
       alert("Please answer all the questions"); 
      else alert(count); 
     } 
    </script> 

В коде есть много радиокнопки. они выглядят как

<input type="radio" name="q1" value="1" id="label01"/> 

Но моя функция javascript никогда не показывает предупреждение. кнопка, которая должна вызывать функция

<input type="button" value="Result" onclick="GetResult()"/> 

Может быть, кнопка не вызывает GetResult?

+2

У вас возникли какие-либо ошибки? Если элемент с идентификатором '' label '+ i + j' не существует, 'document.getElementById (« label »+ i + j) .checked' выдаст ошибку (поскольку' getElementById' вернет 'null'). –

+0

Получается ошибка на месте, где указал Феликс Кинг и, следовательно, не закончил. Вам нужна какая-то проверка, чтобы убедиться, что она не является нулевой. –

+0

hm.it - ​​null. что не так? Я не могу проверить, проверен ли радиообъект так? – lapots

ответ

0

Чтобы уточнить, что сказал Феликс: Вот как вы можете проверить, найден ли или нет document.getElementById указанный элемент (он будет возвращать null, если он не сработал).

for (var i = 0; i < 10; i++) { 
    for (var j = 1; j < 4; j++) { 
     // Store the result in a local variable 
     var label = document.getElementById("label"+i+j); 

     // Include a check whether "null" got returned 
     if (label && label.checked) { 
      count +=1; 
     } 
    } 
} 
0

Попробуйте это:

function GetResult() { 
     var count = 0; 
     for (var i = 0; i < 10; i++){ 
      for (var j = 1; j < 4; j++){ 
       var label = document.getElementById("label" + i + j); 
       if (label && label.checked) { 
        count +=1; 
       } 
      } 
     } 

     if (count != 10) { 
      alert("Не все отвечено"); 
     } else { 
      alert(count); 
     } 
    } 
  • Добавлено var в count декларации.
  • Исправлено некоторое общее форматирование.
  • Важный бит: проверено, если document.getElementById() вернул значение, прежде чем проверять его значение checked.
Смежные вопросы