首页 > 解决方案 > 指定的值“未定义”不是有效数字

问题描述

我正在学习关于公司库存的考试。我想我可以帮自己一个忙,在为这次考试学习的同时学习一些关于编码的新知识。通常我在我的公司只用很少的 javascript 做前端。

我想要做的是设置一个包含 2 个输入行的表。

第 1 行:我输入第 2 行:我输入的总和

我放了一个按钮,应该将我在第 1 行输入的值提供给第 2 行的另一个字段。

当我的输入类型是数字时,我得到这个:指定的值“未定义”不是有效数字。该值必须与以下正则表达式匹配:-?(\d+|\d+.\d+|.\d+)([eE][-+]?\d+)?

当我的输入类型是文本时,我得到:未定义

我很确定我的功能有问题,但我无法弄清楚,当我搜索我的问题时,我只会发现更复杂的情况,我也不明白。

提前感谢您的帮助:)

<script>
    function test() {
        var x = document.getElementById("1").value;
        document.getElementById("ro").value = x;
    }
</script>
</head>
<body>
<table>
    <tr><td><b><button onclick="test()">test</button></b></td></tr>
    <tr><td>&nbsp;</td></tr>
    <tr>
        <td>
            <div id="flex-table">
                    <table id="names">
                    <!--Names--><!--Names-->
                        <caption>A: Vermögen</caption>
                            <tr><th>I. Anlagevermögen</th></tr>
                            <tr><td class="first">Grundstücke</td></tr>
                            <tr><td class="second">Gernotstraße</td> </tr>
                    </table>
                    <table id="input">
                    <!--Input--><!--Input-->
                        <caption>&nbsp;</caption>
                            <tr><th><p>€&lt;/p></th></tr>
                            <tr><td>&nbsp;</td></tr>
                            <tr><td><form id="1"><input type="number" value="0"></form></td></tr>
                    </table>
                    <table id="values">
                    <!--Values--><!--Values-->
                        <caption>&nbsp;</caption>
                            <tr><th><p>€&lt;/p></th></tr>
                            <tr><td>&nbsp;</td></tr>
                            <tr><td><input id="ro" type="number"value="0" readonly></td></tr>
                    </table>
                </div>
        </td>
    </tr>
</table>

标签: javascripthtmlinputdatatablegetelementbyid

解决方案


错误

  1. 首先id不仅是数字。所以你必须与一些字符串混合
  2. 并且document.getElementById("string1")放置时form没有输入。所以将 id 添加到输入而不是form

<script>
  function test() {
    var x = document.getElementById("string1").value;
    document.getElementById("ro").value = x;
  }
</script>


<body>
  <table>
    <tr>
      <td><b><button onclick="test()">test</button></b></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>
        <div id="flex-table">
          <table id="names">
            <!--Names-->
            <!--Names-->
            <caption>A: Vermögen</caption>
            <tr>
              <th>I. Anlagevermögen</th>
            </tr>
            <tr>
              <td class="first">Grundstücke</td>
            </tr>
            <tr>
              <td class="second">Gernotstraße</td>
            </tr>
          </table>
          <table id="input">
            <!--Input-->
            <!--Input-->
            <caption>&nbsp;</caption>
            <tr>
              <th>
                <p>€&lt;/p>
              </th>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
            <tr>
              <td>
                <form><input id="string1" type="number" value="0"></form>
              </td>
            </tr>
          </table>
          <table id="values">
            <!--Values-->
            <!--Values-->
            <caption>&nbsp;</caption>
            <tr>
              <th>
                <p>€&lt;/p>
              </th>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
            <tr>
              <td><input id="ro" type="number" value="0" readonly></td>
            </tr>
          </table>
        </div>
      </td>
    </tr>
  </table>


推荐阅读