我正在尝试做一个小卡片问答游戏,我试图实现一个功能,让某人可以在输入区域中输入文本,并且在他们按下后在屏幕上闪烁输入单词“正确”或“不正确”在输入区域空白并且下一个问题被加载之前1秒钟。如何通过HTML表单输入文本并使用Javascript从JSON文件中检索数据作为响应?
这是一个视觉的我在做什么:
特别是,这是HTML代码,生成低于输入文本区域:
<form id="answers">
<input type="text" name="inputtext" id="answer" style="width: 100%; height: 30px;" placeholder="Enter your answer..." onkeyup="checkAnswer(this,event);" autofocus><br>
</form>
这是JSON文件另存为:questionsAndAnswersItalian.json
[{"q":"What is the word for 'where' in Italian?","a":"Dove"},
{"q":"What is the word for 'when' in Italian?","a":"Quando"},
{"q":"What is the word for 'why' in Italian?","a":"Perché"}]
这是我写的这是不工作的JavaScript代码:
var jsonUrl = "questionsAndAnswersItalian.json";
var qs;
var numCards;
var maxIndex;
function checkAnswer(input, event){
if(event.keyCode == 13){
var answer = document.getElementById("answer").value.toLowerCase();
var questionNumber = 0;
for(var i = 0; i<jsonUrl.length; i++){
if(answer == jsonUrl[questionNumber]["a"].toLowerCase()){
setTimeout(correct_input, 1000);
input.value = "";
}else{
setTimeout(incorrect_input, 1000);
input.value = "";
}
questionNumber++;
}
}
}
function correct_input(){
input.value = "Correct!";
}
function incorrect_input(){
input.value = "Incorrect!";
}
function init() {
$.getJSON(jsonUrl, function(jsonObject) {
qs = jsonObject;
numCards = qs.length;
maxIndex = numCards-1;
displayCard();
});
}
的功能都没有工作,我希望他们和我在想,如果有人能告诉我在哪里,我错了。
如果你需要更多的信息来了解我在这里做什么,请不要犹豫,问!
任何帮助或建议将不胜感激!
谢谢。
它是什么,是无法按预期工作? –
输入答案后,输入区域应闪烁“正确!”或“不正确!”持续1秒,取决于用户输入的内容,但是从我目前所写的内容来看,没有文字闪过 – Jamaal
首先,它看起来对我来说就像您希望通过设置一些名为jsonURL的变量来加载您的问题和答案。你需要使用类似jQuery.ajax的异步方式加载它们。 – CharlesTWall3