gpt4 book ai didi

javascript - JS 用用户输入替换表单输入

转载 作者:行者123 更新时间:2023-11-28 08:18:47 25 4
gpt4 key购买 nike

我是一个 javascript 新手,正在努力完成我的类(class)期末项目。我们实际上是在进行在线测验。这是一个数学测验,我已经设置了带有文本输入字段的表单作为答案,这些表单位于 div 容器内。我正在尝试创建一个函数,单击提交按钮后,将提取用户输入的值,并使用该值替换表单作为 div 的内部 html。这样,答案将被提交,并且在用户提交答案后无法更改。其中的一个关键步骤是单独输入答案的数字 - 一个用于十列的字段,一个用于个位的字段。我试图分别提取它们,将它们连接起来,然后将它们与计算出的实际答案进行比较。实际答案将取代提交按钮,并用颜色编码来反射(reflect)用户是否正确。这是我所拥有的:

var firstNumber = Math.floor((Math.random()*50)+1);
var secondNumber = Math.floor((Math.random()*50)+1);
var generate = function(){
document.getElementById("addends1").innerHTML=firstNumber;
document.getElementById("addends2").innerHTML=secondNumber;
};
var evaluate = function(){
var result = firstNumber+secondNumber;
document.getElementById("button").innerHTML=result;
var tens = document.getElementById("result10s").value;
var ones = document.getElementById("result1s").value;
var entry = tens + ones;
document.getElementById("resultContainer").innerHTML=entry;
var cO = document.getElementById("cO").value;
document.getElementById("carryOverContainer").innerHTML=cO;
var answer = parseFloat(entry);
if (answer===result) {
document.getElementbyID("resultContainer").style.color="#b2f078";
} else {
document.getElementbyID("resultContainer").style.color="#e87c73";
}
};
document.getElementById("button").onclick=evaluate();

(第一个函数在html标签中调用,onload用于按钮图像)谢谢!编辑:我的问题是我的代码根本没有做任何事情。我不知道这是否与我如何调用“评估”函数或函数本身有关。我想用输入的值替换所有表单字段,然后用加法问题的正确答案替换按钮。这是我的 html:

<body>
<div id="carryOverContainer">
<form>
<input type="text" name="carryOver" id="cO"/>
</form>
</div>
<div id="addends1" class="addends"> </div>
<div id="addends2" class="addends"> </div>
<div id="resultContainer">
<form>
<input type="text" id="result10s" class="result">
<input type="text" id="result1s" class="result">
</form>
</div>
<div id="button" onclick=evaluate();>
<img src="next.png" alt="next" onload="generate();"/>
</div>
</body>

我怀疑问题可能在于我如何尝试从表单字段中提取和存储值?

最佳答案

由于可能存在很多问题,我将逐步帮助您,而不是尝试为您提供整个解决方案。 (现在是周末,所以我可以更频繁地回复。)

第一个问题是定义和使用函数的方式。您的语法,

var evaluate = function() {
// ...
}

定义分配给变量generate匿名函数。为了进行比较,以下是常规函数的定义方式:

function evaluate() {
// ...
}

如果调用正确,您的语法可以工作,但您像常规函数一样调用它:

document.getElementById("button").onclick=evaluate();

发生的情况是,对于常规函数,函数 evaluate() 将被分配给 onclick 事件,对于匿名函数,evaluate() 被解释为调用此变量中的匿名函数。因此,立即调用 evaluate(),而不是 onclick! Here's a JSFiddle这显示了如何立即替换您的表单字段。

解决此问题后,请更新您的问题并对我的答案发表评论以引起我的注意,我们将从那里开始处理。

顺便说一句,如果您使用的是 Chrome,请按 CtrlShiftI 并转到控制台 选项卡查看您的 Javascript 是否引发任何问题。 Firefox 有类似的功能 - 在菜单中查找开发人员工具。

关于javascript - JS 用用户输入替换表单输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23261551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com