如何重置输入值
How to reset input value
function ageVerify() {
var age1 = Number(document.getElementById("age1").value);
var voteable;
if (isNaN(age1) || document.getElementById("demo1").innerHTML == "") {
voteable = "Please type a number";
} else {
voteable = (age1 < 18) ? "Too young":"Old enough";
}
document.getElementById("demo1").innerHTML = voteable;
}
<p>Input your age and click the button:</p>
<input id="age1" placeholder="type your age" />
<button onclick = "ageVerify()">Verify the age</button>
<p id="demo1"></p>
你好。当我玩弄条件(tenary)函数时,我发现了它有趣的一面以及它的局限性。现在,如果用户没有输入数字或任何内容,他们会收到一条消息 "Please type a number." 并且取决于他们输入的是 18 岁以上还是 18 岁以下,他们将收到 "Too young":"Old enough"。
一切都很好,直到我发现当我在输入数字后尝试用空输入再次验证年龄时,innerHTML ("Too young") 不会消失或被 "Please type a number" 取代当我不输入任何内容时。如果我不事先输入数字,它会起作用,但一旦我输入数字,消息就不会消失。有没有办法循环函数?我希望我解释清楚了。
感谢您的阅读。
发生的情况是您在第一个 if 语句中测试了错误的值。由于您正在使用 Number(document.getElementById("age1").value)
将 age1 转换为数字,因此空输入永远不会是 NaN
,而是 0。并且由于该值已经设置,因此也不会通过。这就是为什么它不会变回您想要的文本的原因。
此外,如果您设置元素的文本,最好使用 .textContent
而不是 .innerHTML
尝试改用下面的代码片段。
function ageVerify() {
var age1 = Number(document.getElementById("age1").value);
var voteable;
if (isNaN(age1) || !document.getElementById("age1").value) {
voteable = "Please type a number";
} else {
voteable = (age1 < 18) ? "Too young" : "Old enough";
}
document.getElementById("demo1").textContent = voteable;
}
<p>Input your age and click the button:</p>
<input id="age1" placeholder="type your age" />
<button onclick="ageVerify()">Verify the age</button>
<p id="demo1"></p>
请将您的 Javascript 功能改成这个。
function ageVerify() {
var age1 = Number(document.getElementById("age1").value);
var voteable;
if (isNaN(age1) || document.getElementById("age1").value=="") {
voteable = "Please type a number";
} else {
voteable = (age1 < 18) ? "Too young" : "Old enough";
}
document.getElementById("demo1").innerHTML = voteable;
return false;
}
function ageVerify() {
var age1 = Number(document.getElementById("age1").value);
var voteable;
if (isNaN(age1) || document.getElementById("demo1").innerHTML == "") {
voteable = "Please type a number";
} else {
voteable = (age1 < 18) ? "Too young":"Old enough";
}
document.getElementById("demo1").innerHTML = voteable;
}
<p>Input your age and click the button:</p>
<input id="age1" placeholder="type your age" />
<button onclick = "ageVerify()">Verify the age</button>
<p id="demo1"></p>
你好。当我玩弄条件(tenary)函数时,我发现了它有趣的一面以及它的局限性。现在,如果用户没有输入数字或任何内容,他们会收到一条消息 "Please type a number." 并且取决于他们输入的是 18 岁以上还是 18 岁以下,他们将收到 "Too young":"Old enough"。
一切都很好,直到我发现当我在输入数字后尝试用空输入再次验证年龄时,innerHTML ("Too young") 不会消失或被 "Please type a number" 取代当我不输入任何内容时。如果我不事先输入数字,它会起作用,但一旦我输入数字,消息就不会消失。有没有办法循环函数?我希望我解释清楚了。
感谢您的阅读。
发生的情况是您在第一个 if 语句中测试了错误的值。由于您正在使用 Number(document.getElementById("age1").value)
将 age1 转换为数字,因此空输入永远不会是 NaN
,而是 0。并且由于该值已经设置,因此也不会通过。这就是为什么它不会变回您想要的文本的原因。
此外,如果您设置元素的文本,最好使用 .textContent
而不是 .innerHTML
尝试改用下面的代码片段。
function ageVerify() {
var age1 = Number(document.getElementById("age1").value);
var voteable;
if (isNaN(age1) || !document.getElementById("age1").value) {
voteable = "Please type a number";
} else {
voteable = (age1 < 18) ? "Too young" : "Old enough";
}
document.getElementById("demo1").textContent = voteable;
}
<p>Input your age and click the button:</p>
<input id="age1" placeholder="type your age" />
<button onclick="ageVerify()">Verify the age</button>
<p id="demo1"></p>
请将您的 Javascript 功能改成这个。
function ageVerify() {
var age1 = Number(document.getElementById("age1").value);
var voteable;
if (isNaN(age1) || document.getElementById("age1").value=="") {
voteable = "Please type a number";
} else {
voteable = (age1 < 18) ? "Too young" : "Old enough";
}
document.getElementById("demo1").innerHTML = voteable;
return false;
}