Задача: если в поле вводится ответ с 1 ошибкой в цифре, то выводится частичное решение, если 2 ошибки и более, то ответ неверный, если все цифры совпадают, то ответ верный. НО почему-то код работает не совсем верно
function rezultat1() {
const user_answer = document.getElementById('otvet1').value;
const correct_answer = '529736';
let score = 0;
for (let i = 0; i < correct_answer.length; i++) {
if (correct_answer[i] == user_answer[i]) score++; //если символы двух строк совпадаем, увеличиваем score на 1
}
if (score == correct_answer.length) { //ответ полностью верный
document.getElementById("itog1").innerHTML ='Ваш ответ ВЕРНЫЙ! Вы набрали 2 балла.';
document.getElementById("otvet1").classList.remove("half");
document.getElementById("otvet1").classList.remove("wrong");
document.getElementById("otvet1").classList.add("correct");
} else if (score > 0) {
document.getElementById("itog1").innerHTML = 'Ваш ответ ЧАСТИЧНО ВЕРНЫЙ! Правильный ответ: А-5 Б-2 В-9 Г-7 Д-3 Е-6. Вы набрали 1 балл.';
document.getElementById("otvet1").classList.remove("correct");
document.getElementById("otvet1").classList.remove("wrong");
document.getElementById("otvet1").classList.add("half");
} else {
document.getElementById("itog1").innerHTML = 'Ваш ответ НЕВЕРНЫЙ! Правильный ответ: А-5 Б-2 В-9 Г-7 Д-3 Е-6. Вы набрали 0 баллов.';
document.getElementById("otvet1").classList.remove("correct");
document.getElementById("otvet1").classList.remove("half");
document.getElementById("otvet1").classList.add("wrong");
}
}
.correct {
background-color: #79ba6c;
color: #000000;
}
.wrong {
background-color: #ed9898;
color: #000000;
}
.half
{
background-color:#f5b65d;
color:#000000;
}
<big><font size="5" face="Roboto">Ответ:<input type="text" id="otvet1" placeholder="Ваш ответ"></font></big>
<button onclick="rezultat1()"><font size="4" face="Roboto">Далее</font></button>
<p id="itog1"></p>
Вот так:
} else if (score == correct_answer.length - 1) {
или вы можете считать неправильные ответы - это еще лучше и сравнивать с 0 и 1:
errors = 0;
for (let i = 0; i < Math.min(correct_answer.length, user_answer.length); i++) {
if (correct_answer[i] != user_answer[i])
errors++;
}
код:
function rezultat1() {
const user_answer = document.getElementById('otvet1').value;
const correct_answer = '529736';
const correct_answer_text = Array.from(correct_answer, (obj, index) => String.fromCharCode("А".charCodeAt(0) + index) + '-' + obj).join(' ');
for (leter of correct_answer) {
}
let score = 0;
for (let i = 0; i < Math.min(correct_answer.length, user_answer.length); i++) {
if (correct_answer[i] == user_answer[i])
score++; //если символы двух строк совпадаем, увеличиваем score на 1
}
if (score == correct_answer.length) { //ответ полностью верный
document.getElementById("itog1").innerHTML ='Ваш ответ ВЕРНЫЙ! Вы набрали 2 балла.';
document.getElementById("otvet1").classList.remove("half");
document.getElementById("otvet1").classList.remove("wrong");
document.getElementById("otvet1").classList.add("correct");
} else if (score == correct_answer.length - 1) {
document.getElementById("itog1").innerHTML = `Ваш ответ ЧАСТИЧНО ВЕРНЫЙ! Правильный ответ: ${correct_answer_text}. Вы набрали 1 балл.`;
document.getElementById("otvet1").classList.remove("correct");
document.getElementById("otvet1").classList.remove("wrong");
document.getElementById("otvet1").classList.add("half");
} else {
document.getElementById("itog1").innerHTML = `Ваш ответ НЕВЕРНЫЙ! Правильный ответ: ${correct_answer_text}. Вы набрали 0 баллов.`;
document.getElementById("otvet1").classList.remove("correct");
document.getElementById("otvet1").classList.remove("half");
document.getElementById("otvet1").classList.add("wrong");
}
}
.answer {
font-family: "Roboto";
font-size: 12px;
font-weight: 700;
margin-bottom: 20px;
}
input {
margin-left: 20px;
}
.correct {
background-color: #79ba6c;
color: #000000;
}
.wrong {
background-color: #ed9898;
color: #000000;
}
.half {
background-color:#f5b65d;
color:#000000;
}
<div class = 'answer'>Ответ: <input type="text" id="otvet1" placeholder="Ваш ответ"><button onclick="rezultat1()">Далее</button></div>
<p id="itog1"></p>
P.S.
кстати вы бы автоматизировали бы вывод информации об ответе:
к примеру:
const correct_answer_text = Array.from(correct_answer, (obj, index) => String.fromCharCode("А".charCodeAt(0) + index) + '-' + obj).join(' ');
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Проблема заключается в том что при вводе пароля сайт не переходит на другую страницу(способ перехода header)
Я учусь и наступил тот момент, когда хочу загрузить сайт (html+css+js) в сетьПонятно, что сначала надо оплатить хостинг, домен
Здраствуйте! Суть проблемы: при верстке сайта нужно, чтобы фон корректно отображался на всех устройствах, но при адаптивной верстке у меня...