【发布时间】:2016-11-13 16:47:54
【问题描述】:
我正在制作一个包含数字数组的程序,然后用户输入一些值并单击验证。他输入的值必须与数字数组顺序一致,如果不是,用户会收到一条警告消息,抱歉。
第一个输入栏中的值决定了比较应该从数组的哪个编号开始。例如,如果数组包含像 {2,4,6,8,10} 这样的数字,并且用户在第一个输入栏中输入 6,然后在接下来的两个输入栏中输入 8 和 10,他应该得到结果“678 " 如果他没有正确输入第一个数字,假设他输入了 3,并且由于 3 不在数组中,那么无论他在其他输入栏中输入什么,他都会得到“对不起”的结果。
类似地,如果用户在第一个输入栏中输入 4,然后在第二个输入栏中输入 8,他仍然应该得到结果“Sorry”,因为数组的顺序是 {4,6,8} 而不是{4,8}。
我编写了一个程序,但每当我点击验证按钮时,什么都没有发生。
这是我的代码。这也是我得到的结果: https://jsfiddle.net/53j19rpt/
<html>
<head>
</head>
<script type="text/javascript">
var arr = [];
var t;
var num = 2;
var x = [];
for (var x = 0; x < 4; x++) {
document.getElementById("one" + x);
}
function go() {
for (var t = 0; t < 4; k++) {
x[t] = num * (t + 1);
}
for (var k = 0; k < 4; k++) {
if (document.getElementById("one0").value >= x[k])
if (document.getElementById("one" + k).value == x[k])
document.write(document.getElementById("one" + k).value);
else
document.write("Sorry");
}
}
</script>
<body>
<input id="one0" type="text">
<input id="one1" type="text">
<input id="one2" type="text">
<input id="one3" type="text">
<input type="button" id="verifyBtn" value="verify" onclick="go()">
</body>
</html>
【问题讨论】:
-
您永远不能在页面加载后使用 document.write。并且您需要等待加载才能访问页面上的字段
-
for (var x = 0; x
-
我实际上放弃了尝试解决这个问题。
document.getElementById("one" + x);不完整,在它所在的地方不需要。请使用更好的变量名。i几乎在 for 循环中普遍使用,但是您有 t 和 k 并且没有一致地更新它们。在多个地方更新 k 并且 var 也被提升时,您可能会运行永久循环 -
对不起..我本来打算做别的东西,但后来把它擦掉了,但我忘了擦掉那个没用的部分..好吧,我需要做的就是使用window.onload?就这样?
-
在小提琴中,我点击了(Javascript)按钮并更改为“in head”,因此在使用之前定义了函数
标签: javascript jquery arrays html