Как получить правильный балл в викторине, нажав клавишу enter ?
Я работаю над проектом викторины, который не является множественным выбором. Пользователь должен каждый раз вводить ответ в поле ввода. Проблема, с которой я сталкиваюсь, заключается в том, что я получаю правильный балл, если нажимаю на кнопку отправки каждый раз, но не получаю правильный балл, если нажимаю enter, чтобы отправить ответ.
Что я уже пробовал:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content="Unlimited grammar practice exercises of each & every topic to get a good commmand of English language"> <link rel="stylesheet" type="text/css" href="random.css"> <script type="text/javascript" src="jquery.js"> </script> <script type="text/javascript" src="random.js"> </script> <title> English Grammar Exercises </title> </head> <title> Grammar Quiz </title> <body> <div class="start"> <h1> Welcome to English Pupils </h1> <a class="btn" href="#"> Get Started </a> </div> <div class="quiz"> <input type="text" class="input" /> <input type="text" class="output" /> <a class="sub" href="#" onclick="checkAnswer()"> Submit </a> </div> <div class="summary"> <h2> Summary Screen </h2> <p> Congrats you scored x out of y correct ! </p> <a class="rst" href="#" onclick="restartQuiz()"> Restart Quiz </a> </div> </body> </html>
var questions = [ { title: "I like cricket.", answer: "I do not like cricket." }, { title: "He is smart.", answer: "He is not smart." }, { title: "She sings well.", answer: "She does not sing well." }, { title: "You are a cheat.", answer: "You are not a cheat." }, { title: "They are coming.", answer: "They are not coming." }, ]; let score = 0; let currentQuestion = 0; $('document').ready(function () { $('.start a').click(function (e) { e.preventDefault(); $('.start').hide(); $('.quiz').show(); showQuestion(); }); $('.output').keyup(function (e) { if (e.keyCode === 13) { $('.sub').click(); } }); }); function showQuestion() { let question = questions[currentQuestion]; $('.input').val(question.title); } function checkAnswer() { let question = questions[currentQuestion]; let out = $('.output').val(); if (out == questions[currentQuestion].answer) { score++; } currentQuestion++; if (currentQuestion >= questions.length) { showSummary(); } else { showQuestion(); } $('.sub').click(function () { $('.output').val(''); }); } function showSummary() { $('.quiz').hide(); $('.summary').show(); $('.summary p').text("Congrats you scored " + score + " out of " + questions.length + " correct !"); } function restartQuiz() { $('.summary a').click(function (e) { e.preventDefault(); $('.summary').hide(); $('.quiz').show(); currentQuestion = 0; showQuestion(); }); }