按钮根本不起作用

时间:2016-11-13 16:47:54

标签: javascript jquery html arrays html5

我正在制作一个包含数字数组的程序,然后用户输入一些值并点击验证。他输入的值必须与数字数组一致,如果用户没有得到警告信息,那就不好了。

第一个输入栏内的值决定比较应该从哪个数组开始。例如,如果数组包含{2,4,6,8,10}之类的数字,并且用户在第一个输入栏中输入6,然后他在接下来的两个栏中输入8和10,他应该得到结果&# 34; 678" 如果他没有得到第一个数字,那么让他说他进入3,并且由于3不在数组中,那么他在其他输入条中输入的内容并不重要,他会得到结果"抱歉"。

类似地,如果用户在第一个输入栏中键入4但是然后在第二个栏中键入8,他仍然应该得到结果"抱歉"因为数组的顺序是{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>

2 个答案:

答案 0 :(得分:0)

版本1 - 所有4个必须按顺序正确

var x = [],num=2;
// I assume you will want to change this to random later
for (var i = 0; i < 4; i++) { 
  x[i] = num * (i + 1);
}
console.log(x);

function go() {
  var found=0;
  for (var i = 0; i < 4; i++) {
    if (document.getElementById("one" + i).value == x[i]) {
      found++;
    }
  }
  document.getElementById("result").innerHTML = found==x.length?x:"Sorry";
}
<input id="one0" type="text" value="" />
<input id="one1" type="text" value="" />
<input id="one2" type="text" value="" />
<input id="one3" type="text" value="" />
<input type="button" id="verifyBtn" value="verify" onclick="go()" />
<span id="result"></span>

版本2如果输入的内容错误,则会出错

var x = [],
  num = 2;
// I assume you will want to change this to random later
for (var i = 0; i < 4; i++) {
  x[i] = ""+num * (i + 1); // make string
}
console.log(x);
window.onload = function() {
  var field = document.querySelectorAll(".entry");
  for (var i = 0; i < field.length; i++) {
    field[i].onkeyup = function() { 
      document.getElementById("result").innerHTML = (x.indexOf(this.value) == -1)?"Sorry":this.value;
    }
  }
}

function go() {
  var field = document.querySelectorAll(".entry"),
    error = false,
    res = "";
  for (var i = 0; i < field.length; i++) {
    res += field[i].value; // string concatenation
  }
  document.getElementById("result").innerHTML = (res == x.join("")) ? res : "Sorry";
}
<input class="entry" id="one0" type="text" value="" />
<input class="entry" id="one1" type="text" value="" />
<input class="entry" id="one2" type="text" value="" />
<input class="entry" id="one3" type="text" value="" />
<input type="button" id="verifyBtn" value="verify" onclick="go()" /><br/>
<span id="result">test</span>

版本3 - 如果它们是数组的子部分,则认为任何1,2,3或4个条目是正确的,例如46是好的,因此是68但不是26

var x = [],
  num = 2;
// I assume you will want to change this to random later
for (var i = 0; i < 4; i++) {
  x[i] = ""+num * (i + 1); // make string
}
console.log(x);
window.onload = function() {
  var field = document.querySelectorAll(".entry");
  for (var i = 0; i < field.length; i++) {
    field[i].onkeyup = function() { 
      document.getElementById("result").innerHTML = (x.indexOf(this.value) == -1)?"Sorry":this.value;
    }
  }
}

function go() {
  var field = document.querySelectorAll(".entry"),
    error = false,
    res = [];
  for (var i = 0; i < field.length; i++) {
    if (x.indexOf(field[i].value) !=-1) res.push(field[i].value); 
  }
  document.getElementById("result").innerHTML = (x.join(".").indexOf(res.join("."))!=-1) ? res : "Sorry";
}
<input class="entry" id="one0" type="text" value="" />
<input class="entry" id="one1" type="text" value="" />
<input class="entry" id="one2" type="text" value="" />
<input class="entry" id="one3" type="text" value="" />
<input type="button" id="verifyBtn" value="verify" onclick="go()" /><br/>
<span id="result">test</span>

答案 1 :(得分:0)

如果我理解你的问题,这应该有效:

<html>
<head>
</head>
<body>
    <input id="one0" type="text" value="">
    <input id="one1" type="text" value="">
    <input id="one2" type="text" value="">
    <input id="one3" type="text" value="">
    <input type="button" id="verifyBtn" value="verify" onclick="go()">

    <script type="text/javascript">
        function go() {
            var arrinputs = [];
            var arr = [2, 4, 10, 12];

            for (var x = 0; x < 4; x++) {
                var tmp = parseInt(document.getElementById("one" + x).value)
                if (!isNaN(tmp))
                    arrinputs.push(tmp);
            }
            var a = "-" + arrinputs.join('-') + "-";
            var b = "-" + arr.join('-') + "-";

            if (b.indexOf(a) != -1) {
                alert("Ok!");
            } else {
                alert("Sorry!");
            }
        }
    </script>

</body>
</html>

测试1(检查数组2,4,6,8)

enter image description here

返回:Corrent

测试2(检查数组2,4,6,8)

enter image description here

返回:Corrent

测试3(检查数组2,4,6,8)

enter image description here

退货:抱歉

测试4(检查数组2,4,10,12)

enter image description here

返回:Corrent

测试5(检查数组2,4,10,12)

enter image description here

退货:抱歉

测试6(检查数组2,4,10,12)

enter image description here

退货:抱歉

相关问题