Javascript - var for not循环

时间:2016-09-11 15:57:13

标签: javascript html validation loops for-loop

我正在用HTML和JAVASCRIPT构建一个简单的琐事/测验游戏,但是我在验证好的响应方面遇到了问题,除了第一个验证良好的响应。

Javascript代码:

// global arrays
var index = 0;

var p = ['Quantos octetos tem um IPv4?',
  'Qual a mascara de 192.168.10.1/24?',
  'Qual o comando que verifica conexões de rede?',
];

var r = [
  ['4', '8', '16'],
  ['255.255.255.255', '255.255.255.0', '255.0.0.0', ],
  ['CHMOD', 'NETSTAT', 'PING']
];

function validar() {
  //if this is the last question hide and displays quiz ends            
  if (index >= p.length) {
    document.getElementById('per').innerHTML = '<div>earthTrivia End, Thank `you!</div>';
    document.getElementById('bt1').style.visibility = 'hidden ';
    clearInterval(interval);
    document.getElementById('score').innerText = score;
    document.getElementById('inp').style.visibility = 'hidden';
    estatistica(score);
    return false;
  }

  var html = '<div>' + p[index] + '</div>';
  for (var i = 0; i < r[index].length; i++) {
    html += '<label><h3>' + r[index][i] + '</label></h3>';

  }

  html += '</div > ';
  document.getElementById('per').innerHTML = html;

  index++;
  valrespostas();
}

function valrespostas() {
  var resposta = document.getElementById('inp').value;
  for (var j = 0; j < r.length; j++) {
    var resposta = document.getElementById('inp').value;
    if (resposta[j] == r[0][0]) {
      document.getElementById('inp').value = '';
      document.getElementById('score').innerText = score++;
      break;
    } else if (resposta[j] == r[1][0]) {
      document.getElementById('inp').value = '';
      document.getElementById('score').innerText = score++;
      break;
    } else if (resposta[j] == r[2][0]) {
      document.getElementById('inp').value = '';
      document.getElementById('score').innerText = score++;
      break;
    } else {
      document.getElementById('inp').value = '';
      break;
    }
  }
  document.getElementById('inp').value = '';
}

我的validar()函数每次都被HTML文件中的一个按钮调用,其目标是前进到全局数组中的下一个问题/答案。 这项工作正常。

接下来调用函数valrespostas(),它必须验证用户在输入表单字段中输入的答案。 这不起作用。这仅适用于for循环的第一次迭代,在剩余的迭代中,变量respostas保存第一次迭代的值并且永远不会更改为新值,如果用户选择正确的答案,则不会将其验证为良好答案。

我在STACK中看到,关于循环闭包,但找不到解决方案。

有什么建议吗?

0 个答案:

没有答案