如何通过HTML表单输入文本并使用Javascript从JSON文件中检索数据作为响应?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何通过HTML表单输入文本并使用Javascript从JSON文件中检索数据作为响应?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2412字,纯文字阅读大概需要4分钟。
内容图文
我正在尝试制作一个小卡片问答游戏,我正在尝试实现一个功能,有人可以将文本输入到输入区域,然后在他们按下输入后,屏幕上会显示“正确”或“不正确”字样1在输入区域为空并且下一个问题被加载之前的第二个.
这是我正在做的事情的视觉效果:
特别是,这是生成下面输入文本区域的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();
});
}
这些功能不像我预期的那样有效,我想知道是否有人可以告诉我哪里出错了.
如果您需要更多信息来了解我在这里做的事情,请不要犹豫!
任何帮助或建议将不胜感激!
谢谢.
解决方法:
在这部分:
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++;
}
你循环遍历String(jsonUrl),而不是你的jsonObject.请改用qs.
编辑:
这是一个有效的jquery代码:
$('#answer').keyup(function(event) {
var code = event.keyCode || event.which;
if (code == 13) {
var answer = $(this).val().toLowerCase();
var goodAnswer = qs[currentCard].a.toLowerCase();
if (answer == goodAnswer) {
setTimeout(correct_input, 1000);
}
else {
setTimeout(incorrect_input, 1000);
}
$(this).val('');
}
});
声明var currentCard = null;作为全局并在displayCard()中设置其值,我认为你做了随机或类似的事情.
使用此代码,您必须删除onkeyup =“checkAnswer(this,event);”.
jsfiddle:http://jsfiddle.net/u7bkH/
内容总结
以上是互联网集市为您收集整理的如何通过HTML表单输入文本并使用Javascript从JSON文件中检索数据作为响应?全部内容,希望文章能够帮你解决如何通过HTML表单输入文本并使用Javascript从JSON文件中检索数据作为响应?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。