这是我的代码。控制台总是读错了。怎么了。我认为这是我对文本框的反对意见。
function compare() {
var test = "test";
var input = document.getElementById("input").value;
var inputLen = input.length;
var tick;
for (tick = 0; tick < inputLen; tick++) {
if (input[tick] != test[tick]) {
break;
}
}
if ((tick - 1) == test.length) {
console.log("equal");
} else {
console.log("wrong");
}
}
<input type="text" id="input" placeholder="text">
<input type="submit" id="submit" onclick="compare()">
我真的可以使用一些帮助。 console.log始终返回“错误”。
答案 0 :(得分:1)
执行for
循环时,tick
变量在退出循环之前的最后一次迭代时增加到5。要解决此问题,请将其与test.length
进行比较,而不要使用-1
:
function compare() {
var test = "test";
var input = document.getElementById("input").value;
var inputLen = input.length;
var tick;
for (tick = 0; tick < inputLen; tick++) {
if (input[tick] != test[tick]) {
break;
}
}
// After exiting the loop, tick will be equal to 5, not 4.
if (tick === test.length) {
console.log("equal");
} else {
console.log("wrong");
}
}
<input type="text" id="input" placeholder="text">
<input type="submit" id="submit" onclick="compare();">
答案 1 :(得分:-3)
解决方案1
var test = "test";
var input = document.getElementById("input").value;
var inputLen = input.length;
var tick;
for (tick=0; tick < inputLen; tick++)
{
if (input[tick]!=test[tick])
{
break;
}
}
if (tick==test.length)
{
console.log("equal");
}
else
{
console.log("wrong");
}
解决方案2
var test = "test";
var input = document.getElementById("input").value;
var inputLen = input.length;
var tick;
for (tick=1; tick <= inputLen; tick++)
{
if (input[tick-1]!=test[tick-1])
{
break;
}
}
if ((tick - 1)==test.length)
{
console.log("equal");
}
else
{
console.log("wrong");
}