Это проверка, над которой я работаю, но, похоже, не получается. Когда я ввожу правильный вывод «12345», он работает, и функция Done() отображает предупреждение «Well Done». Тем не менее, мы вводим 3 неудачных попытки на вывод, он показывает ошибку, но функция Done продолжает активироваться, когда после ошибки программа должна остановиться. Любые решения?Javascript: Почему моя проверка ввода не работает?
<head>
<script>
valid = false;
function Start(valid) {
check(valid);
if (valid = true) {
Done();
}
if (valid = false) {
alert('End');
return;
}
}
function check(valid) {
var PinNum;
var Attempts = 0;
while (Attempts < 3) {
Attempts = (Attempts + 1);
PinNum = prompt('Enter the pin number');
if (PinNum == '12345') {
alert('Welcome!');
valid = true;
return valid;
return;
} else {
alert('Wrong pin number, this is attemp ' + Attempts + ' of 3');
}
}
alert('Too many failed attempts, giving up');
return;
}
function Done() {
alert("well done")
}
</script>
</head>
<body>
<button onclick="Start()">Start</button>
</body>
</html>
Возьмите отладчик и отлаживать код – zerkms
Вы только что прошли 'valid' в качестве аргумента, что делает его локальным для функции проверки, так что изменение' valid' внутри функции проверки не влияет на 'valid' вне функции, это две разные переменные. – adeneo