漢字クイズを作っています。
出題された漢字の読み仮名をフォームにすると次の問題が表示される、というものなのですが、フォーム上でエンターを押すと何故かスタートの状態に戻ってしまいます
<body> <p id="hurigana"></p> <p id="target"></p> <p id="start"></p> <span id="timer"></span> </p><form> <input type="text" id="fkanji" /> </form> <script> (function() { 'use strict'; var words = [ ["犬","いぬ"], ["猫","ねこ"], ["猿","さる"] ]; var currentWord; var timer; var target = document.getElementById('target'); var start =document.getElementById('start') var timerLabel = document.getElementById('timer'); var fkanji=document.getElementById('fkanji'); var hurigana=document.getElementById('hurigana') var isStarted; var timerId; var kotae; var huseikai; function init() { currentWord = '漢字クイズ'; hurigana.innerHTML=""; target.innerHTML = currentWord; start.innerHTML="スタート" isStarted = 1; huseikai=false; timerLabel.innerHTML =""; clearTimeout(timerId); } init(); function setTarget() { var kanji; fkanji.focus(); kanji = words[Math.floor(Math.random() * words.length)]; currentWord= kanji[0]; kotae =kanji[1]; target.innerHTML = currentWord; timer = 5; timerLabel.innerHTML = timer; updateTimer(); fkanji.addEventListener("input", function () { if (fkanji.value === kotae && huseikai==false) { setTarget(); clearTimeout(timerId); fkanji.value=''; } }); function updateTimer() { timer--; timerId = setTimeout(function() { timerLabel.innerHTML = timer; if (timer <= 0) { isStarted=3; huseikai=true; hurigana.innerHTML=kotae; timerLabel.innerHTML = ""; start.innerHTML = "もう一度"; clearTimeout(timerId); return; } updateTimer(); }, 1000); } } start.addEventListener('click', function() { if (isStarted==1) { isStarted = 2; start.innerHTML="<br>"; setTarget(); } else if (isStarted==2){ } else{ init(); } }); })(); </script>
どうすれば解決できるでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。