不知道为什么我的验证器不起作用

时间:2018-07-14 16:14:09

标签: javascript html

嗨,我是html和javascript的新手。我遇到了一个看似正确的问题,但是它不起作用。函数中肯定有问题,我无法解决。

<html>
<body>
  <section>
    <form name="CombinationWithRep">
      <h2>Combination with repetition</h2>
      N:<input type="text" name="numberOfThings" /> R:
      <input type="text" name="selection" />
      <button onclick="CombinationWithRepfun()">Sub</button>
      <p id="demo1"></p>
    </form>
    <script langauge="javascript">
      function CombinationWithRepfun() {
        var number = document.forms["CombinationWithRep"]["numberOfThings"].value;
        var selector = document.forms["CombinationWithRep"]["selection"].value;
        if (number == " ") {
          alert("pleas typo");
          return false;
        }
        if (selector == " ") {
          alert("pleas typo");
          return false;
        }
        var number1 = number * 1;
        var selector1 = selector * 1;
        document.getElementById("demo").innerHTML = Math.pow(number1, selector1);

      }
    </script>
  </section>
</body>
</html>

3 个答案:

答案 0 :(得分:1)

您的代码中几乎没有问题:

  1. 您正在用空格(In [12]: p.parse_args('-s pos_cmd_1 -d'.split()) usage: ipython3 [-h] [-d D] [-e E] ... ipython3: error: unrecognized arguments: -s )检查该值,我认为您不希望这样做。您必须使用空字符串检查该值。

  2. 如果条件为真,则可以使用阻止事件进一步执行。

  3. 如果条件为假,则应执行其他代码。

  4. 您还必须使用event.preventDefault()而不是demo1。尝试以下代码:

demo

答案 1 :(得分:0)

首先,在脚本标记中输入错误(“语言”而非“语言”。) 其次,我认为您需要使用parseInt或ParseFloat将数字1和选择器1从字符串转换为数字

答案 2 :(得分:0)

答案在下面,这是我的构建方式:https://codepen.io/yamato79/pen/YjwzQE希望这会有所帮助,祝您有愉快的一天。

  • 添加type =“ button” <button type="button" onclick="CombinationWithRepfun()">Sub</button>属性,以便在您单击按钮时不提交表单。每次您单击按钮时,它都会刷新页面,因为它将表单提交到同一页面。

  • if (selector == "") if (number == "")将其与引号进行比较。您使用的“”不等于输入为空。

  • <script langauge="javascript">更改为<script type="text/javascript">

  • document.getElementById("demo1").innerHTML = Math.pow(number1, selector1);最后,您的元素ID不正确。