这很难简明扼要地说.但是我的 if/else javascript 有问题.“如果”在“其他”发生之后不会发生

This is hard to say concisely...but I'm having issues with my if/else javascript. "if" won't happen after "Else" does

本文关键字:如果 有问题 其他 之后 javascript 简明扼要 很难 else if 我的      更新时间:2023-09-26

我刚刚开始学习Javascript,所以也许这完全是它应该做的事情,但我认为这是一个问题。

我有一个文本框和提交按钮。我有一<p>隐藏的文本。

如果用户输入的文本是我想要的,则提交时会显示文本<p>

ELSE(任何其他用户的文本),将显示文本,但是

document.getElementById("id").innerHTML="Incorrect!";
document.getElementById("id").style.display="block;"

因此,如果您先输入正确的单词,则会显示<p>

如果不正确,

则会显示,但文本不同,即"不正确!目前为止,一切都好。。。

问题:文本出错后,您无法重试,您必须刷新。如果你做对了,就会显示正确的文本,如果你在 after 中输入其他内容,正确的<p>也会随之而来,但如果你在输入错误的文本后尝试,它不会返回。

所以一旦不正确,你就回不去了。因此,如果有人弄错了,然后输入正确的词,除非他们刷新并先尝试一次,否则他们将无法分辨......这有意义吗?我希望我清楚。

你没有发布太多代码,所以我会在这个答案中做出一些假设,我希望这些假设是清楚的

假设你有我的"文本框"<input type="text" id="textbox"/>,我将称之为box,你的消息区域<p id="id">sometext</p>我将称之为msg

var box = document.getElementById('textbox'),
    msg = document.getElementById('id');

然后在处理您拥有的提交的代码中,说

if (box.value === 'foo') { // contains the right thing
    // ...
} else { // contains the wrong thing
    msg.innerHTML = 'Incorrect!';
    msg.style.display = 'block';
}

您说第一次工作正常,但第二次工作不行,那么您需要考虑这两个调用之间实际发生了哪些变化?也许您应该在if之前重新设置默认值,例如,我猜您的消息开始隐藏,因此您可以在if行之前添加以下内容以确保您从期望的位置开始

msg.style.display = 'none';